// there are two temporary objects to be de-constructed
1. class Person
{
static int num;
public:
Person() { num++; }
~Person() { num--; Print(); }
void Print() { cout<<"The person num is: "<< num << endl; }
};
int Person::num=0;
Person foo(Person p){ p.Print(); return p;}
void main()
{
Person p1;
p1.Print();
Person p2=foo(p1);
p2.Print();
return;
}
// when resize an array, delete the old array before assign a new one
2. void test(int *&array)
{
int *var = new int[20]; for (int i=0;i<10;i++)
{ var[i]=array[i]+10; }
for (int i=10;i<20;i++) var[i]= i * 3;
if(array) delete[] array; array=var;
}
int main()
{
int *var = new int[10];
for (int i=0;i<10;i++) var[i]=i;
test(var);
for (int i=0;i<20;i++) cout << var[i] << "\n";
delete [] var;
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment