C在子类中调用虚方法

前端之家收集整理的这篇文章主要介绍了C在子类中调用虚方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下课程:
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) {
  ...
}

猜你在找的C&C++相关文章