我有以下课程:
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()
内剂量测量(
事先谢谢。
如果没有对成员内部进行显式初始化,它可能既不是空的,也指向无效的内存。你能给我们看一下显式初始化内部的代码吗?
a的适当构造函数如下
protected: A() : inner(NULL) { ... }
不过,如果将a*指定为与初始化了b的指针相同,则会出现堆栈溢出…你为什么需要内心?你不能只调用一个::dosomething()?