社区
C语言
帖子详情
重载=号能不能实现这样的功能?
shiningstar
2002-05-13 10:04:32
比如一个类的实例a
我可以通过重载=号实现:
a=somesymbol;
可不可以实现:
somesymbol=a;
望指教。谢谢
...全文
63
7
打赏
收藏
重载=号能不能实现这样的功能?
比如一个类的实例a 我可以通过重载=号实现: a=somesymbol; 可不可以实现: somesymbol=a; 望指教。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jerry921
2002-05-14
打赏
举报
回复
to: Muf(沐枫)
>Class1 __class1 = __class2; //此处调用的是复制构造函数>
>//它与下面的形式是等价的:
>Class1 __class1(__class2);
你把那个_class2换成一个整型或其它类型变量也是一样的,我的说法可能有问题,就是你这种意思。
编译器在遇到这种赋值时,就找合适的构造函数做处理,不用再重载=了。
kof99th
2002-05-14
打赏
举报
回复
可以用友元函数实现,Muf(沐枫) 已经说过了 。
Muf
2002-05-13
打赏
举报
回复
To: jerry921(jerry)
>> class=type,用构造函数实现的
构造函数并非赋值运算函数。
例如:
Class1 __class1 = __class2; //此处调用的是复制构造函数
//它与下面的形式是等价的:
Class1 __class1(__class2);
而不处在类型声明语句的“=”号才是赋值运算:
Calss1 __class1;
__class1 = class2;//它调用的是__class1.operator=(...)或operator(Class1& __left, ...)
Muf
2002-05-13
打赏
举报
回复
>>我可以通过重载=号实现:
>>1) a=somesymbol;
>>可不可以实现:
>>2) somesymbol=a;
对于运算号(包括其它二元运算符)重载,有两种实现方式:成员函数重载和友元(friend)函数重载。
对于1)来说,这两种实现方式都可以。
但对于2)来说,就只有友元(全局)函数可以做到。
类似于<< >>这两个ios标准的运算符。对于一个类型,想要实现通过cout输出到屏幕,就只有重载<<友元了。
------------------------------------------
友元赋值运算符形式如下:
T1& operator=(T1& a, const T2& b)
记得在T1中说明该函数为友元(friend)
成员赋值运算符形式如下:
T1& T1::operator=(const T2& b)
shiningstar
2002-05-13
打赏
举报
回复
具体形式怎么写?
谢谢
晨星
2002-05-13
打赏
举报
回复
重载类型转换符,打个比方,如果somesymbol是int型的,就要重载int转换符。
jerry921
2002-05-13
打赏
举报
回复
class=type,用构造函数实现的,
比如
classs abc
{
public:
abc(int a);
....
}
abc aa;
aa=3;
就是如此;
而int b=aa就要重载=了。
C++
重载
=(赋值运算符)
C++
重载
=(赋值运算符) 在前一节中,我们讲解了初始化和赋值的区别:在定义的同时进行赋值叫做初始化...默认
重载
的赋值运算符
功能
很简单,就是将原有对象的所有成员变量一一赋值给新对象,这和默认拷贝构造
C语言在怎么类中
重载
==运算符,C++中运算符
重载
的规则语法实例
之前就知道运算符的
重载
就是将它重新定义,给它新的
功能
,为的式符合程序员的要求,一个例子就是,要将坐标相加,但是电脑不知道怎么相加,于是聪明的人就赋予了“+”新的定义。然而一些严格意义上的用法还不是很...
C++ 运算符
重载
前言 本文引用于“C语言中文网”,我整理出来放在博客,方便大家共同学习。所有知识点和代码均已亲测可用,如有疑问,可提出,一起讨论学习...5. C++
实现
可变长度的动态数组 6. C++
重载
<<和>...
Java
重载
(什么是
重载
?什么时候
重载
?
重载
有什么好处?)
那么能
不能
做两个float类型的求和? * 可以创建新的方法,也可以进行
重载
。 *
重载
的含义:在java中,如果有
功能
类似,可以使用相同的名字来定义不同
功能
方法; * 所谓的不同
功能
:不是主体
功能
不同,而是参数不同。...
C++中
重载
赋值运算符=
1.C++
重载
=(赋值运算符) 在定义的同时进行赋值叫做初始化(Initialization),定义完成以后再赋值(不管在定义的时候有没有赋值)就叫做赋值(Assignment)。初始化只能有一次,赋值...默认
重载
的赋值运算符
功能
很...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章