雖然我學會了如何實現C++中的最後一節課,我找到了這樣的語句: "the most derived class's ctor needs to directly call the virtual base class's ctor." 但是,我無法找到C++標準的聲明原件。 (N3126) 誰能告訴我確切的頁碼? 在此先感謝。
可能重複: gcc c++ virtual inheritance problem 大家好, 我讀的有效C++由斯科特·邁爾斯書。有人提到關於虛擬基類和虛擬繼承如下。 控制虛擬基類初始化的規則比非虛擬基的規則更加複雜和不直觀。初始化虛擬基地的責任由層次結構中最派生的類承擔。當一個新的派生類中被添加到層次結構,它必須承擔其虛基類初始化responsiblities(直接和間接) 問題是在上面的語句是
上http://en.wikipedia.org/wiki/Virtual_inheritance class Animal
{
...
};
// Two classes virtually inheriting Animal:
class Mammal : public virtual Animal
{
...
};
我也看了書使用以下語法, class Mammal :
據我所知,菱形繼承產生歧義,它可以通過virtual Base Classes使用繼承迴避的是,問題不是它。當類是多態時,問題是關於菱形層次結構中派生最多的類的大小。下面是一個示例代碼和輸出樣本: #include<iostream>
using namespace std;
class Base
{
public:
virtual void doSomething
我有關於C++中嵌套繼承的問題。我有三類:Base,Middle和Top。通常我使用公有繼承從Middle派生的時候,但我有一個類(Top)已經從Middle私有繼承,但是它應該公開Base方法爲公共用途... 這裏是我的解決方案,可以嗎? class Base
{
// ...
}
class Middle :
public virtual Base
{