以下程序的输出结果是 【8】 。
#include<iostream.h>
class object
private:
int val;
public:
object( );
object(int i);
~object( );;
object::object( )
val=0;
cout<<"Default constructor for object"<<endl;
object::object(int i)
val=i;
cout<<"Constructor for object"<<val<<endl;
object::~object( )
cout<<"Destructor for object"<<val<<endl;
class container private:
object one;
object two;
int data;
public:
container( );
container(int i,int j,int k);
~container( );;
container::container( )
data=0;
cout<<"Default constructor for container"<<endl;
container::container(int i,int j,int k):two(i),one(j)
data=k;
cout<<"Constructor for container"<<endl;
container::~container( )
cout<<"Destructor for container"<<endl;
void main( )
container anObj(5,6,10);
参考答案:
Constructor for object6
Constructor for obiect5
Constructor for container
Destructor for container
Destructor for object5
Destructor for obiect6
解析: C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。