Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;cpp文件中的继承函数_C++ - Fatal编程技术网

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();
}