等号操作符重载
来源:互联网 发布:求呱呱软件 编辑:程序博客网 时间:2024/05/24 06:22
当是涉及到深拷贝是,一种解决方式就是自己写构造函数处理深拷贝,另一种方式就是等号操作符重载
等号操作符重载实例:
#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;/*单目运算符重载*/class eqPtor{private:char *str;int str_length;public:eqPtor(char* m_str, int m_length){this->str_length = m_length;this->str = new char[str_length+1];strcpy(this->str, m_str);}eqPtor(eqPtor &opp){this->str_length =opp.str_length;this->str = new char[str_length + 1];strcpy(this->str, opp.str);}/*等号操作符重载*/#if 0 /*等号操作符重载方式1*/void operator=(eqPtor &opp1){/*首先判断当指针是否分配内存,如果是则先释放后分配*/if (this->str != NULL){delete this->str;this->str_length = 0;}this->str_length = opp1.str_length;this->str = new char[str_length + 1];strcpy(this->str, opp1.str);}#endif /*等号操作符重载方式2*/eqPtor operator=(eqPtor &opp1){/*首先判断当指针是否分配内存,如果是则先释放后分配*/if (this->str != NULL){delete this->str;this->str_length = 0;}this->str_length = opp1.str_length;this->str = new char[str_length + 1];strcpy(this->str, opp1.str);return *this;}void print(){cout << " :" << this->str << endl;}~eqPtor(){if (this->str != NULL){delete this->str;this->str_length = 0;}}};int main(){{eqPtor opp1("libin", sizeof("libin"));eqPtor opp2("yiyierer", sizeof("yiyierer"));eqPtor opp3("busanbusi", sizeof("busanbusi"));//eqPtor opp2=opp1;opp1 = opp2;//这样是调用等号操作符,由于这里没有对等好操作符进行重载,所以如果之际使用就会出现错误//opp1 = opp2=opp3 这种运算方式用等号操作符重载方式一不可行 应为等号操作符是从有往左结合的,所,opp2=opp3的运算结果是void ,相当于opp1=void不可行opp1 = opp2 = opp3;/*这里将等号操作修改以后就可以使用这种操作*/opp1.print();}system("pause");return 0;}
阅读全文
0 0
- 重载等号操作符
- 等号操作符重载
- 运算符重载之等号
- 阻止编译器自动生成copy函数和重载等号操作符
- C++拷贝构造函数的调用时机,如没有重载等号操作符,需重写使用深拷贝
- 重载等号操作符(分析初始化对象和赋值对象的浅拷贝)(进阶3)
- C#中的==,!=等符号重载,以及重载等号操作
- 神奇的c++等号重载
- shell等号操作符(=)的区别
- C# 重载等号运算符。==,!=,Equal,下标运算符
- 关于拷贝构造函数和等号运算符重载的试验
- c++学习笔记(三):深拷贝与浅拷贝及等号运算符重载
- 对象隐式转换,复制构造函数和重载等号运算符的区别
- c++拷贝构造函数遇上等号重载
- c++重载操作符
- C++ 操作符重载
- 操作符重载浅析
- 操作符重载
- 用Python学《微积分B》(有理式与简单无理式积分套路)
- InteliJ idea与github
- MongoDB经典面试题集锦
- Zookeeper学习笔记 --- Zookeeper调研报告2
- JQuery第二次操作复选框无法选中的问题
- 等号操作符重载
- 909422229_三种常用定时器之Spring中Quartz定时器
- 冒泡以及直接选择排序的JAVA实现
- post json 请求url第三方url
- 去问去问驱蚊器我
- 被坑水题——PAT(Basic Level)-1007
- 如何给DELL Vostro 3268电脑安装WIN7
- 《Windows核心编程》读书笔记一 错误处理
- 王者荣耀T恤图案图形设计大赛—英雄台词字体设计