C++ C++;cpp文件中的继承函数
C++ C++;cpp文件中的继承函数,c++,C++,Topic是一个基类,在Topic中声明了一个名为possibleeevaluationquestions()的方法AlgebraTopic是Topic的一个子类。在AlgebraTopic的cpp文件中,我声明了函数: vector<EvaluationQuestion *> AlgebraTopic::possibleEvaluationQuestions() { return vector<EvaluationQuestion *>(); } 向量代数::
Topic
是一个基类,在Topic
中声明了一个名为possibleeevaluationquestions()
的方法AlgebraTopic
是Topic
的一个子类。在AlgebraTopic的cpp文件中,我声明了函数:
vector<EvaluationQuestion *> AlgebraTopic::possibleEvaluationQuestions()
{
return vector<EvaluationQuestion *>();
}
向量代数::可能的评估问题()
{
返回向量();
}
但是在Xcode中得到警告“超出了定义范围”。它说'possibleEvaluationQuestions()'不是在AlgebraTopic
中声明的,它不是,而是在超类主题
中声明的。我做错了什么?当您定义:
vector<EvaluationQuestion *> AlgebraTopic::possibleEvaluationQuestions()
输出:
衍生
基地
您必须在
AlgebraTopic
标题中重新声明它?尽管它在主题中声明过?是的,您需要为AlgebraTopic
重新定义,因此必须重新声明它
struct X
{
virtual void foo() { std::cout << "base\n"; }
};
struct Y : X
{
void foo() { std::cout << "derived\n"; }
};
int main(){
Y y;
y.foo();
y.X::foo();
}