Virtual Heritage.

Ambiguous heritage.

virtual

See version :

Pas de dépendances

Download :

#include <iostream>
#include <cstdlib>

using namespace std;

class Mere
{
protected:
    char a[100];
public:
    Mere(){}
};

class Fille1:public Mere
{
protected:
    char b[1000];
public:
    Fille1(){}
};

class Fille2:public Mere
{
protected:
    char c[1000];
public:
    Fille2(){}
};

class PetiteFille:public Fille1,public Fille2
{
protected:
    char d[10000];
public:
    PetiteFille(){}
    //void plouf(){ a[0] = 2;}   // a1
    //void plouf(){Fille1::Mere::a[0] = 2;}   // a2
};

int main()
{
    cout << "size mere = " << sizeof(Mere) << endl;
    cout << "size fille1 = " << sizeof(Fille1) << endl;
    cout << "size fille2 = " << sizeof(Fille2) << endl;
    cout << "size petitefille = " << sizeof(PetiteFille) << endl;
    //PetiteFille pf;   // a0
    //pf.plouf();       // a0
    
    system("pause");
    return 0;
}



Explanations

	No explanations yet.