[英]C++ call virtual method in child class
我有以下课程:
class A {
protected:
A *inner;
public:
....
virtual void doSomething() = 0;
....
}
class B: public A {
...
void doSomething() {
if(inner != NULL)
inner->doSomething();
}
...
}
当我使用inner->doSomething()
我得到了一个分段错误。 我应该怎么做才能在B类中调用inner->doSomething()
?
提前致谢。
如果没有成员内部的显式初始化,它可能既不是NULL也不是指向无效的内存。 你能告诉我们明确内在化的代码吗?
A的适当构造函数如下
protected:
A() : inner(NULL) {
...
}
虽然如果你指定A *与B初始化这个指针相同,你会得到一个堆栈溢出...你需要内部的任何理由吗? 你不能只调用A :: DoSomething()吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.