簡體   English   中英

如何將一個C ++類聲明為繼承自另一個類?

[英]How to forward declare a C++ class as inheriting from another class?

我知道我可以如下聲明一個類:

class Foo;

// ... now I can use Foo*

但是,我可以這樣做嗎?

class Bar {
  public:
    virtual void someFunc();
};
// ... somehow forward declare Class Foo as : public Bar here
someFunc(Foo* foo) {
  foo -> someFunc();
}

class Foo: public Bar {
}

謝謝!

您可以將Bar聲明為Bar class Bar; 並更改someFunc的簽名以Bar*作為參數。 由於someFunc()是基類中的虛方法,因此它應該可以工作。

在您的前向聲明Foo成為不完整的類型之后 ,在您提供Foo的定義之前,它將保持不完整。 Foo不完整時,任何取消引用Foo指針的嘗試都是不正確的。 所以寫

foo->someFunc();

您需要提供Foo的定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM