- /*
- *Copyright (c) 2015,烟台大学计算机学院
- *All rights reserved.
- *文件名称:text.cpp
- *作者:李德彪
- *完成日期:2015年4月23日
- *版本号:v1.0
- *
- *问题描述: 理解程序的运行方式
- *输入描述: 无
- *程序输出: 调用构造函数以及析构函数的顺序
- */
- #include <iostream>
- using namespace std;
- class A
- {
- public:
- A(){cout<<"A";}
- ~A(){cout<<"~A";}
- };
- class B
- {
- A *p;
- public:
- B()
- {
- cout<<"B";
- p=new A();
- }
- ~B()
- {
- cout<<"~B";
- delete p;
- }
- };
- int main()
- {
- B obj;
- return 0;
- }
/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:text.cpp
*作者:徐健
*完成日期:2015年4月23日
*版本号:v1.0
*
*问题描述: 理解程序的运行方式
*输入描述: 无
*程序输出: 调用构造函数以及析构函数的顺序
*/
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"A";}
~A(){cout<<"~A";}
};
class B
{
A *p;
public:
B()
{
cout<<"B";
p=new A();
}
~B()
{
cout<<"~B";
delete p;
}
};
int main()
{
B obj;
return 0;
}
2.
- #include <iostream>
- using namespace std;
- class MyClass
- {
- public:
- MyClass(int x=0):i(x){cout<<"C"<<i;}
- ~MyClass(){cout<<"D"<<i;}
- void SetValue(int val){i=val;}
- int GetVal(){return i;}
- private:
- int i;
- };
- int main()
- {
- MyClass *p[3];
- int i;
- for (i=0; i<3; i++)
- {
- p[i]=new MyClass(i);
- p[i]->SetValue(p[i]->GetVal()*2);
- }
- for (i=0; i<3; i++)
- delete p[i];
- cout<<endl;
- return 0;
- }
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x=0):i(x){cout<<"C"<<i;}
~MyClass(){cout<<"D"<<i;}
void SetValue(int val){i=val;}
int GetVal(){return i;}
private:
int i;
};
int main()
{
MyClass *p[3];
int i;
for (i=0; i<3; i++)
{
p[i]=new MyClass(i);
p[i]->SetValue(p[i]->GetVal()*2);
}
for (i=0; i<3; i++)
delete p[i];
cout<<endl;
return 0;
}
3.
- #include <iostream>
- using namespace std;
- class AA
- {
- public:
- AA(int i,int j)
- {
- A=i;
- B=j;
- cout<<"Constructor\n";
- }
- AA(AA &obj)
- {
- A=obj.A+1;
- B=obj.B+2;
- cout<<"Copy_Constructor\n";
- }
- ~AA() {
- cout<<"Destructor\n";
- }
- void print()
- {
- cout<<"A="<<A<<",B="<<B<<endl;
- }
- private:
- int A,B;
- };
- int main()
- {
- AA a1(2,3);
- AA a2(a1);
- a2.print();
- AA *pa=new AA(5,6);
- pa->print();
- delete pa;
- return 0;
- }