对象第复制operator=
类机制中有默认的对象复制操作符=,自定义对象复制需要注意一个问题,如果有遇到指针指向的资源是需要释放的,这时需要毫不留情释放,否则内存空间的泄露就不可避免。复制操作与拷贝构造函数的参数是一致的,只是在功能上复制操作只管复制不管构造。赋值操作返回必须是引用返回,这是为了与复制操作符语义一致,因为复制操作的结果是一个可以地径操作的左值。
#include<iostream>
using namespace std;
class Student{
char* pname;
public:
Student(char *pname = "NoName"){
cout<<"成功构造"<<endl;
this->pname = new char[strlen(pname)+1];
strcpy(this->pname, pname);
}
void print(){cout<<pname<<endl;}
//--------------------------------------------
Student& operator=(const Student&s){
if(this==&s)
return *this;
delete []pname;
this->pname=new char[strlen(s.pname)+1];
strcpy(pname,s.pname);
return *this;
}
//----------------------------------------------
~Student(){
delete[]pname;
}
};
int main(){
Student a("LiLy");
Student b;
b=a;
b.print();
return 0;
}
最新文章
- java即时通信小例子
- css 小三角
- js实现发送短信验证码后的倒计时功能(无视页面刷新)
- js之数组,对象,类数组对象
- (转载)struts2的驱动模型
- Oracle中Left join的on和where的效率差别
- Win7 下硬盘安装Linux Mint 17
- 李洪强漫谈iOS开发[C语言-011] - C语言标示符
- 如何理解IoC/DI
- Python FTP多线程爆破脚本
- V9最新手机门户域名绑定教程。
- 关于Unity导出的Android应用在小米、联想等机型上崩溃的问题
- C语言程序设计(翁恺)--第二周课件中的两个遗留点
- 为VisualSVN Server增加在线修改用户密码的功能
- Chapter 1 First Sight——32
- 运维-替换kibana徽标
- 1. js数据类型_对象_函数_内存
- 查看Java JVM参数配置信息命令
- VS编程,编辑WPF过程中,点击设计器中界面某一控件,在XAML中高亮突出显示相应的控件代码的设置方法。
- ag使用需要注意的问题
热门文章
- 43、gridview或者listview的adapter优化
- Linux下c++使用pthread库
- [python][django学习篇][8]django 视图(2) --简单模板
- Markdown语法图解
- codechef May Challenge 2016 FORESTGA: Forest Gathering 二分
- 如何在MySQL中导入大容量SQL文件
- SPOJ QTREE4 SPOJ Query on a tree IV
- BZOJ【1609】 麻烦的聚餐
- Vijos[1028]魔族密码
- 命名参数和可选参数在.NET中的使用