繁体   English   中英

C ++在子类中调用虚方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM