簡體   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