[ Goran Arandjelovic @ 08.06.2006. 11:41 ] @
Ako imamo ovakvo nasleđivanje...![]() i sledeći kod u okviru toga... Code: #include <iostream> #include <string> using namespace std; class M { public: M(const string& s) { cout << "M " << s << endl; } }; class A { M m; public: A(const string& s) : m("in A") { cout << "A " << s << endl; } virtual ~A() {} }; class B { M m; public: B(const string& s) : m("in B") { cout << "B " << s << endl; } virtual ~B() {} }; class C { M m; public: C(const string& s) : m("in C") { cout << "C " << s << endl; } virtual ~C() {} }; class D { M m; public: D(const string& s) : m("in D") { cout << "D " << s << endl; } virtual ~D() {} }; class E : public A, virtual public B, virtual public C { M m; public: E(const string& s) : A("from E"), B("from E"), C("from E"), m("in E") { cout << "E " << s << endl; } }; class F : virtual public B, virtual public C, public D { M m; public: F(const string& s) : B("from F"), C("from F"), D("from F"), m("in F") { cout << "F " << s << endl; } }; class G : public E, public F { M m; public: G(const string& s) : B("from G"), C("from G"), E("from G"), F("from G"), m("in G") { cout << "G " << s << endl; } }; int main() { G g("from main"); cout << sizeof(g); //32 } Moje pitanje je sledeće... da li bi neko mogao da mi zašto je veličina objekta g 32 bajta, koji (skriveni) pokazivači su u njegovom sastavu? I...ako imate vremena, hteo bih da znam kako bi ste Vi predstavili ovaj objekat u memoriji (layout)? |