在Shape.hpp:C++爲什麼繼承不起作用?
class Shape {
public:
char c;
virtual void paint();
...
};
在Triangle.hpp:
#include "Shape.hpp"
class Triangle : public Shape {
...
};
在Triangle.cpp:
...
void Triangle::paint() {
...
}
...
當編譯:
error: class ‘Triangle’ does not have any field named ‘c’
error: no ‘void Triangle::paint()’ member function declared in class ‘Triangle’
我做不明白爲什麼Tr iangle沒有其父類Shape的字段和成員函數。這怎麼解決?
你從來沒有在'Triangle'中聲明任何'paint'函數。任何C++多態資源都應該有很好的工作示例。 – chris
您的'類Triangle'定義在右大括號後缺少';'。 – pmr
@pmr這只是一個錯誤,而不是在代碼中。現在已經修復了。 – user2460978