#include<iostream>
using namespace std;
//定义类
class cname
{
public :
//构造函数声明
cname(int q, int w, int e);
//复制构造函数声明
cname(cname& r);
//析构函数
~cname();
//自定义函数
int getc();//输出三个值
private:
int a, b, c;
int* p;
};
cname convers();
int main()
{
int e, r, t;
cin >> e >> t >> r;
cout<<"po:\n";
cname po(e, r, t); //传入形参
po.getc(); //打印
cout << "pe:\n";
cname pe=po; //利用复制构造函数 复制一个pe
pe.getc();//打印pe
pe = convers();
pe.getc();
return 0;
}
//构造函数
cname::cname(int q,int w,int e)
{
a = q;
b = w;
c = e;
p = new int ;
*p = c+2;// c值+2 为了区分指针p
}
//拷贝构造函数
cname::cname(cname& r)
{
a = r.a;
b = r.c;
c = r.b; //此处b.c交换值为区别复制的对象
}
//析构函数
cname::~cname()
{
cout << "recycle _class\n";
}
//自定义函数
int cname::getc()//输出三个形参
{
cout <<"a="<< a << " b=" << b << " c= " << c << "\n";
return 0;
}
cname convers()//返回一个cname类型的对象(数据成员通过构造函数初始化完成10,11,12)
{
cname po(10, 11, 12);
return po;
}
C++类与对象(构建函数,析构函数,拷贝构建函数)
最新推荐文章于 2024-07-05 21:31:52 发布