Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cns:labs:lab-10 [2021/01/11 16:55]
mihai.dumitru2201 [C++ objects memory layout]
cns:labs:lab-10 [2021/01/11 16:59] (current)
mihai.dumitru2201 [C++ objects memory layout]
Line 310: Line 310:
 class B { class B {
   int a, b;   int a, b;
 +public:
   virtual void f(void);   virtual void f(void);
 }; };
Line 315: Line 316:
 class B1 { class B1 {
   int x, y;   int x, y;
 +public:
   virtual void z(void);   virtual void z(void);
 }; };
Line 320: Line 322:
 class D: public B, public B1 { class D: public B, public B1 {
   int c, d;   int c, d;
 +public:
   void f(void);   void f(void);
   void z(void);   void z(void);
 }; };
  
-D objD; B1 * ptrB1; +int main() 
-ptrB1 = &objD;+
 +  ​D objD; B1 * ptrB1; 
 +  ptrB1 = &objD; 
 +  ptrB1->​z();​ 
 +}
 </​code>​ </​code>​
  
Line 345: Line 352:
  
 We can also use the compiler to see the data layout. Copy the code above into We can also use the compiler to see the data layout. Copy the code above into
-a file ''​dummy.cpp'' ​and add a main function to make it a valid program: +a file ''​dummy.cpp''​.
-<code cpp> +
-int main() { return sizeof(D); } +
-</​code>​+
  
 Then run: Then run:
cns/labs/lab-10.1610376958.txt.gz · Last modified: 2021/01/11 16:55 by mihai.dumitru2201
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0