//默认拷贝
//默认构造又叫做浅拷贝
//模仿默认函数也是浅拷贝
//同一个类的多个对象,内存排布是一样的,但是地址不同
#include<iostream>
using namespace std;
class stu
{
public:
int b;
char c[4];
stu()
{
b=12;
c[0]='a';
strcpy(c,"bcd");//strcpy容易越界!!
cout<<"create!"<<endl;
}
stu(const stu& a)//拷贝构造也可以使用this指针
{
this->b=a.b;
strcpy(this->c,a.c);
}
~stu()
{
}
};
int main()
{
stu la;
cout<<la.b<<" "<<la.c<<endl;
stu lb(la);//默认拷贝构造会执行
//如果手写会执行手写的
//导致la(la)不会得到理想值
//但是我可以使用this 指针进行二次赋值得到理想结果
cout<<lb.b<<" "<<lb.c<<endl;
}
《C++学习-默认拷贝函数的简单学习》
最新推荐文章于 2022-11-09 00:36:07 发布