C++ cpp 文件中继承的功能
C++ inherited function in cpp file
>Topic
是一个基类,其方法称为possibleEvaluationQuestions()
在Topic
中声明。 AlgebraTopic
是Topic
的一个子类。在AlgebraTopic
的 cpp 文件中,我声明了该函数:
vector<EvaluationQuestion *> AlgebraTopic::possibleEvaluationQuestions()
{
return vector<EvaluationQuestion *>();
}
但是在Xcode中得到警告"出线定义.."。它说'possibleEvaluationQuestions()'没有在AlgebraTopic
中声明,它不是,但是,它是在超类Topic
中声明的。我做错了什么?
当你定义:
vector<EvaluationQuestion *> AlgebraTopic::possibleEvaluationQuestions()
编译器正在寻找相应的声明:C++你不能在没有声明的情况下定义成员函数。
基类函数的声明是另一个不同函数的声明:两者都存在于任何AlgebraTopic
对象中。
你可以用这个说服自己:
struct X
{
virtual void foo() { std::cout << "basen"; }
};
struct Y : X
{
void foo() { std::cout << "derivedn"; }
};
int main(){
Y y;
y.foo();
y.X::foo();
}
输出:
派生
基础
相关文章:
- C++继承和相同的功能名称
- 有没有办法C++将给定类的功能限制为仅另一个类(不使用继承,朋友)?
- C++17 'inline variable' vs 'extern' 关键字继承自 C 的新功能
- 为什么虚拟继承即使不涉及虚拟功能也需要 vtable?
- 抽象类 A 由类 C 继承"through"类 B "intermediary"。如何声明虚拟功能?
- 使用继承和虚拟功能应用五个规则
- 继承多态性功能调用
- C++继承 - 覆盖功能,包括使用 "::" s、.h 文件和.cpp文件
- GCC称将功能与多个继承过载时,称其为模棱两可,但Clang和MSVC没有
- C 从同一基本模板类覆盖功能,具有多个继承模棱两可的函数调用
- 有关继承层次结构的问题,没有任何虚拟功能
- C 继承问题错误C2084功能已经具有主体
- 朋友功能是否继承?为什么基类朋友功能在派生的类对象上工作
- 对具有继承功能的结构使用初始值设定项列表
- 继承和虚拟功能
- 继承:从基类调用派生的类功能
- 在C 中继承类功能:一般问题,以更好地理解,如果有人可以指出我的错误
- 需要有关多个继承和可选功能覆盖C 的建议
- 朋友功能和继承在CPP中
- 继承和功能