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