// testtest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
class c1
{
int a;
public:
c1(int aa)
{
a=aa;
}
~c1()
{
cout<<"Decoustrator in c1 "<<a<<endl;
}
};
class c2:c1
{
int b;
public:
c2(int bb,int aa=0):c1(aa)
{
b=bb;
}
~c2()
{
cout<<"Decoustrator in c2 "<<b<<endl;
}
};
int main(int argc, char* argv[])
{
c2 a1(5);
c2 *a2=new c2(6,7);
delete a2;
return 0;
}
------------------------------------------
#include "iostream.h"
class c1
{
int a;
public:
c1(int aa=0)
{
a=aa;
}
~c1()
{
cout<<"Decoustrator in c1 "<<a<<endl;
}
virtual display();
};
class c2:public c1
{
int b;
public:
c2(int bb=2,int aa=1):c1(aa)
{
b=bb;
}
~c2()
{
cout<<"Decoustrator in c2 "<<b<<endl;
}
virtual display();
};
class c3:public c2
{
int c;
public:
c3(int cc=5,int bb=4,int aa=3):c2(bb,aa)
{
c=cc;
}
~c3()
{
cout<<"Decoustrator in c3 "<<c<<endl;
}
virtual display();
};
c1::display()
{
cout<<"c1::display"<<endl;
}
c2::display()
{
cout<<"c2::display"<<endl;
}
c3::display()
{
cout<<"c3::display"<<endl;
}
int main(int argc, char* argv[])
{
c1 a1,*p1,*p2,*p3;
c2 a2;
c3 a3;
a1.display();
a2.display();
a3.display();
p1=&a1;
p2=&a2;
p3=&a3;
p1->display();
(*p2).display();
p3->display();
return 0;
}
这里还要注意当继承为私有继承时,p2=&a2,p3=&a3有错