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:03]
dennis.plosceanu [Resources]
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);
 }; };
  
-class D: B, 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;​ +
-ptrB1->f();+  ​D objD; B1 * ptrB1; 
 +  ptrB1 = &​objD;​ 
 +  ptrB1->z(); 
 +}
 </​code>​ </​code>​
  
Line 346: 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.1610373800.txt.gz · Last modified: 2021/01/11 16:03 by dennis.plosceanu
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