class B
{
public:
B(char c = 'a') : m_c(c) {}
public:
fun();
private:
char m_c;
};
class C: virtual public B
{ };
class D: virtual public B
{ };
class E
: public C
, public D
{ };
「virtual」キーワードが、クラス E がクラス B のコピーを 1 つだけ持つのにどのように役立つのか疑問に思っています。後でその派生クラスに影響を与えるために、「クラス C」で仮想キーワードが行うこと (理解できるように、仮想継承の基本的な動作を理解しようとしているだけです。この質問の答えを見つけようとしましたが、得られませんでした誰かが良いリンクを知っていれば、それが助けになるかもしれません.) 言い換えれば、違いは何ですか
//1)
class C: virtual public B
{ };
//2)
class C: public B
{ };
クラスCをこれ以上運転しないと。オブジェクトの作成中に、1) と 2) の間に特定の違いはありますか。