社区
C++ 语言
帖子详情
谁帮忙解释一下操作符重载。
atllover
2003-10-09 11:42:31
我开始看了一些,这个知识,操作符重载,主要的应用(c++)试哪个方面呀。
MyType operator+(MyType opp,MyType ood)
这是重载‘+‘的。
前面的MyType示返回值,后面的两个MyType是参数。
我胡乱写的,不只对否。
也和一般的函数时很相似的。
...全文
71
13
打赏
收藏
谁帮忙解释一下操作符重载。
我开始看了一些,这个知识,操作符重载,主要的应用(c++)试哪个方面呀。 MyType operator+(MyType opp,MyType ood) 这是重载‘+‘的。 前面的MyType示返回值,后面的两个MyType是参数。 我胡乱写的,不只对否。 也和一般的函数时很相似的。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
williamVII
2003-10-18
打赏
举报
回复
操作符重载主要是为了类的使用都写代码方便,
操作符重载其实都可以用函数重载来实现,
但这样用起来就不方便了.
aron13
2003-10-18
打赏
举报
回复
实际上你就可以把它理解为一个方法。也就是函数。它有和其它方法一样的用法。只是改变了
操作符代表的意思。到底想代表什么,那要你自己才知道。还有包括“<<",">>"这些其实也是
被重载过了的。
robbie24
2003-10-18
打赏
举报
回复
呵呵,"重载是多态的一种手段"
算是吧,静态下的多态.
liem
2003-10-18
打赏
举报
回复
如果运算符是二目运算,那么用成员函数重载时用一个参数;用友元重载时,要二个参数
RookieStar
2003-10-18
打赏
举报
回复
对operator + 一般这样重载:
1. 类的成员函数:MyType& operator + (const MyType& rhs);
2. 类的友元函数:friend MyType& operator + (const MyType& lhs,const MyType& rhs);
xbpeter
2003-10-17
打赏
举报
回复
重载是多态的一种手段,如c++中的"+"运算只能实现实数的加,如要实现复数的加,就要用重载实现
5510
2003-10-12
打赏
举报
回复
MyType operator+(MyType opp,MyType ood)
有些只能做友员重载 << >>
而有些只能做成员函数重载 ()[]等
有些不能重载 :: -〉等
Wolf0403
2003-10-09
打赏
举报
回复
操作符重载一是为了提供简洁美观的书写方式,二是为了保证 STL 应用中的 concept,例如 sort 需要 operator< 的重载等。
class A
{
public:
operator bool(); // 重载转换操作符 (1)
friend A operator+(const A&, const A&); // 重载加号 (2)
friend bool operator<(const A&, const A&); // 重载 < 符号 (2)
void* operator new(size_t); (3)
void operator delete(void*); (3)
friend std::ostream& operator<<(ostream&, const A&);// 提供 cout << 形式的输出(4)
};
(1):可以提供与任意类型的转换
(2):可以为成员函数/友元函数。如果数据公开,如 struct 可以是非友元函数。
(3):必须是成员函数。
(4):必须是友元函数,因为第一个操作数是 ostream 对象
atllover
2003-10-09
打赏
举报
回复
比如说,模版,是com的基础,虚函数是为接口的实现帮忙等等,这方面的应用。谢谢了。
catface
2003-10-09
打赏
举报
回复
重载不是具体用哪个方面 只要你觉得重载比较能清晰说明问题
就可以重载
atllover
2003-10-09
打赏
举报
回复
friend A operator+(const A&, const A&)
friend 是友元,A是返回类型,两个参数在'+'的两边。
对不起,确实很弱,还没好好看,今天晚上再看。
对么?
void* operator new(size_t);
void*是返回值,size_t是int或是char等等么?
还有浅拷贝,就是int a=5;这种拷贝么?
Wolf0403
2003-10-09
打赏
举报
回复
楼上说的是。譬如一个 String 类
class String
{
char * m_str;
String& operator=(const String& strSrc)
{
m_str = new char[strlen(strSrc.m_str) + 1];
strncpy(m_str, strSrc.m_str, strlen(strSrc.m_str) + 1);
return *this;
}
};
如果用默认赋值函数会让两个 String 对象指向同一个底层字符串。必须重载 operator= 使之进行深拷贝
ballguest
2003-10-09
打赏
举报
回复
浅拷贝不合适时,就必须提供成员赋值运算符号,即重载赋值运算符,
python中的运算符
重载
_Python中的
操作符
重载
Python部落组织翻译,禁止转载,欢迎转发。BYALOK THAKUR· FEBRUARY 22, 20162016年2月22日 , ALOK THAKUR写Python支持许多内建的类型,例如列表,集合,字典等等。它还允许编程用户来定义自己的...
操作符
重载
来
帮忙
了...
[C++]
操作符
重载
重载
操作符
(Overloaded Operator) 是有特殊名称的函数,形式为: operatorX , 例如: Sales_item operator+(const Sales_item&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;, const Sales_item&...
C++//
重载
运算与类型转换
除了
重载
的函数调用运算符operator()外,其他
重载
运算符不能含有默认实参。 一般情况下
重载
的运算符函数参数数量和运算符作用的运算对象数量一样多,且按顺序一一对应。
重载
运算符或者是类的成员函数(其实也就...
34. 指针的
重载
(智能指针)
注意,在进行创建和使用智能指针时,通常需要
重载
-> 和 * 运算符 在写
重载
函数时,返回值有不同的地方,在第二段代码中
重载
->
操作符
时,返回值为Person*,因为需要把 ->
重载
为指向Person的指针 在第三段...
C++ 语言
65,189
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章