当前位置:
编程学习
>
C/C++
>>
C++运算符重载赋值运算符
自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数。
赋值运算符重载函数的定义与其它运算符重载函数的定义是差不多的。
下面我们以实例说明如何使用它,代码如下:
C++ 代码
//程序作者:管宁
//站点:www.易做图ev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
using namespace std;
class Internet
{
public:
Internet(char *name,char *url)
{
Internet::name = new char[strlen(name)+1];
Internet::url = new char[strlen(url)+1];
if(name)
{
strcpy(Internet::name,name);
}
if(url)
{
strcpy(Internet::url,url);
}
}
Internet(Internet &temp)
{
Internet::name=new char[strlen(temp.name)+1];
Internet::url=new char[strlen(temp.url)+1];
if(name)
{
strcpy(Internet::name,temp.name);
}
if(url)
{
strcpy(Internet::url,temp.url);
}
}
~Internet()
{
delete[] name;
delete[] url;
}
Internet& operator =(Internet &temp)//赋值运算符重载函数
{
delete[] this->name;
delete[] this->url;
this->name = new char[strlen(temp.name)+1];
this->url = new char[strlen(temp.url)+1];
if(this->name)
{
strcpy(this->name,temp.name);
}
if(this->url)
{
strcpy(this->url,temp.url);
}
return *this;
}
public:
char *name;
char *url;
};
int main()
{
Internet a("中国软件开发实验室","www.易做图ev-lab.com");
Internet b = a;//b对象还不存在,所以调用拷贝构造函数,进行构造处理。
cout<<b.name<<endl<<b.url<<endl;
Internet c("美国在线","www.aol.com");
b = c;//b对象已经存在,所以系统选择赋值运算符重载函数处理。
cout<<b.name<<endl<
补充:
软件开发 , C++ ,
上一个:
C++的iostream标准库介绍以及对左移与右移运算符的重载
下一个:
C++运算符重载转换运算符
更多图片编程知识:
map 嵌套使用
乘法口诀表
关于qtablewidget中单元格按键改写
设计模式C++描述----02.模板(Template)模式
Linux环境下的C/C++基础调试技术1——初步了解
对前面对于引用的c++入门教程的补充说明
更多
C/C++
疑问解答:
关于c++的cout输出的问题。
在学校里学过C和C++,不过学的很一般,现在自学C#,会不会很难?
全国计算机二级C语言笔试题
已知某树有2个2度结点,3个3度结点,4个4度结点,问有几个叶子结点?
c++数据结构内部排序问题,整数排序
2012九月计算机二级C语言全国题库,,急求急求
如果assert只有一个字符串作为参数,是什么意思呢?
C语言中,哪些运算符具有左结合性,哪些具有右结合性,帮忙总结下,谢谢了!
为什么用结构体编写的程序输入是,0输不出来啊~~~
将IEEE—754的十六进制转化为十进制浮点类型,用C或C++都行,多谢各位大侠啊,非常感谢!
为什么这个程序求不出公式?
这个链表倒置的算法请大家分析下
c语言函数库调用
C语言unsigned int纠错
C语言快排求解啊
站长资源库
asp
php
Delphi
Matlab
JSP
Foxpro
JS
C/C++
C#/ASP.NET
VC++
JAVA
VB
汇编语言
html/css
CGI
XML/UML
wap
网站相关
网页素材
python
微信小程序
thinkphp
如果你遇到
编程学习
难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,