社区
C++ 语言
帖子详情
谁帮忙解释一下操作符重载。
atllover
2003-10-09 11:42:31
我开始看了一些,这个知识,操作符重载,主要的应用(c++)试哪个方面呀。
MyType operator+(MyType opp,MyType ood)
这是重载‘+‘的。
前面的MyType示返回值,后面的两个MyType是参数。
我胡乱写的,不只对否。
也和一般的函数时很相似的。
...全文
41
13
打赏
收藏
谁帮忙解释一下操作符重载。
我开始看了一些,这个知识,操作符重载,主要的应用(c++)试哪个方面呀。 MyType operator+(MyType opp,MyType ood) 这是重载‘+‘的。 前面的MyType示返回值,后面的两个MyType是参数。 我胡乱写的,不只对否。 也和一般的函数时很相似的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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支持许多内建的类型,例如列表,集合,字典等等。它还允许编程用户来定义自己的类型通常被称为用户定义的类型。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&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;); 可以
重载
的
操作符
:
C++//
重载
运算与类型转换
1. 基本概念 函数名格式为 operator+要定义的运算符号 除了
重载
的函数调用运算符operator()外,其他
重载
运算符不能含有默认实参。 一般情况下
重载
的运算符函数参数数量和运算符作用的运算对象数量一样多,且按顺序一一对应。
重载
运算符或者是类的成员函数(其实也就保证了一个类类型的参数),或者至少含有一个类类型的参数。也就是说无法
重载
作用于内置类型的运算符。 可以
重载
大部分运算符,且只能
重载
已经存在的运算符,
重载
的运算符的参数数量,优先级,结合律都和原运算符一样: 不应该
重载
有求值顺序/短路求值
34. 指针的
重载
(智能指针)
智能指针
noip2007 T3 矩阵取数(动归+
操作符
重载
处理高精)
帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij据为非负整数。游戏规则如下:每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有的元素;每次取走的各个元素只能是该元素所在行的行首或行尾;每次取数都有一个得分值,为每行取数的得分之和;每行取数的得分 = 被取走的元素值*2^i,其中i表示第i次取数(从1开始编号);游戏结束总得分为m次取数得分之和。帅帅想请你
C++ 语言
64,671
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章