【发布时间】:2012-03-30 03:38:05
【问题描述】:
我有一组这样的类:
class A {
public:
int DoIt() {
//common code
}
};
class B : public A {
int DoIt() {
if (A::DoIt() == 1) {
return 1;
}
else {
// do b specific code
}
}
};
class C : public A {
int DoIt() {
if(A::DoIt()==1) {
return 1;
}
else {
// do c specific code
}
}
};
有什么方法可以避免手动输入此代码:
if (A::Doit() == 1) { return 1; } else {
在从 A 派生的每个类中?
【问题讨论】:
-
正确的语法是
class B : public A。 C++ 不是 Java。 -
@Justinᚅᚔᚈᚄᚒᚔ:OP 询问如何避免在每个子类中输入
if(A::Doit()==1) return 1; } else {,而不是如何在不知道 A 的情况下调用A::Doit()。链接的问题甚至与继承无关。
标签: c++ design-patterns inheritance