对象第复制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;
}
最新文章
- Python 之简易单链表
- SIFT算法详解(转)
- 浅谈Androidclient项目框架
- 使用C#通过调用minitab的COM库自动化生成报表
- Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
- .net 反射访问私有变量和私有方法
- modifytime是一个神奇的column name----这边文章是错的totally,因为我的实验不彻底。timestamp属性很神奇,头一个timestamp,会自动的成DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- js——事件
- adbetj657k
- Java泛型深入理解
- 1. CMake 系列 - 从零构建动态库和静态库
- 高淇java300集异常机制作业
- Pandas中Loc用法总结
- DAY5(PYTHON) 字典的增删改查和dict嵌套
- C# RestoreDirectory
- spring boot 常见的配置问题
- 虚拟化技术之KVM
- Json对象和字符串互相转换 数据拼接 JSON使用方式
- deepin修改javahome不生效,一直显示openjdk解决
- linux任务计划及周期性任务计划