在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