【发布时间】:2010-08-06 17:44:30
【问题描述】:
我有一个要被继承的 C++ 类。它的所有子代都将继承一个方法:
class Record {
public:
RETTYPE* all();
};
class Child : public Record {
int age;
char *name;
};
int main() {
Child boo;
Child boos* = boo->all(); // Pointer to array of Children
return 0;
};
如何让方法返回(指向)自身?我不能只说Record all(); 因为Child 不是Record。永远不会在Record 上调用该方法。总是在继承自 Record 的某个类上。
【问题讨论】:
-
是您必须告诉我们为什么将方法 all() 放到基类中。做什么的?如果只是为了代码重用,我认为你应该重新考虑。如果对于某些多态行为使其成为虚拟的。 Child 是 Record 的一种类型,因此它可以返回 Record* 但 C++ 支持返回类型协方差