] > Arrays of Objects

11.2 Arrays of Objects

#include <iostream> 
#include <string> 
using namespace std; 
 
class A{ 
     static int cnt; 
     int id; 
     string name; 
  public
     A( string s) 
     { 
        id = cnt++; 
        name = s; 
        cout << ”new obj: ” 
             << s 
             << ’[’ << id << ’]’ << endl; 
     } 
     A() 
     { 
        id = cnt++; 
        name = ””; 
        cout << ”new obj: ” 
             << ’[’ << id << ’]’ << endl; 
     } 
     ˜A() 
     { 
        cout << ”dead obj: ” 
             << name 
             << ’[’ << id << ’]’ << endl; 
     } 
}
int main() 
{ 
  A a; 
 
  a = new  A [3] ( ”obj x” ); 
  delete [] a; 
 
  a = new  A [3] ( ”obj y” ); 
  for(int i = 0; i < 3; i++) 
  { 
     delete &a[i]; 
  } 
 
  a = new  A [3]; 
  delete [] a; 
 
  return 0; 
} 
 int A::cnt = 0;
new obj: obj x[0]  
new obj: obj x[1]  
new obj: obj x[2]  
dead obj: obj x[2]  
dead obj: obj x[1]  
dead obj: obj x[0]  
new obj: obj y[3]  
new obj: obj y[4]  
new obj: obj y[5]  
dead obj: obj y[3]  
dead obj: obj y[4]  
dead obj: obj y[5]  
new obj: [6]  
new obj: [7]  
new obj: [8]  
dead obj: [8]  
dead obj: [7]  
dead obj: [6]

[dynamarray.cpp]