社区
C语言
帖子详情
运算符重载时,为什么有的要写返回类型,有的却不要?
zxy_zs
2002-12-02 03:43:19
像operator char *() const就不用写返回类型。但是有返回值。
而像char& operator[](int) const就有写。
(注:以上两个抄自<effective C+++>里)
哪位高手帮着解释一下
...全文
165
2
打赏
收藏
运算符重载时,为什么有的要写返回类型,有的却不要?
像operator char *() const就不用写返回类型。但是有返回值。 而像char& operator[](int) const就有写。 (注:以上两个抄自里) 哪位高手帮着解释一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lx_cyh
2002-12-02
打赏
举报
回复
2
operator char *() const是重载char *(类型转换),重载的结果(返回值)当然是char *,所以就不必写返回值
类型转换都是这样的
char& operator[](int) const 重载【】运算符,重载的语义及返回值取决于编程者,所以当然要指定返回值
langzi8818
2002-12-02
打赏
举报
回复
我是菜鸟,不懂,那里有返回值呀?
operator char* ()const是不是重载的*
MySQL 数据
类型
和运算符
Re: MySQL 数据
类型
和运算符 ============================= # 数据
类型
整数
类型
:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数
类型
:三种 FLOAT DOUBLE DECIMAL 日期与
时
间数据
类型
:五种 YEAR -1 字符串
类型
...
运算符重载
———
运算符重载
的基本概念
引入
运算符重载
的目的: 由于C++预定义的运算符,只能用于基本数据
类型
的运算:整型、实型、字符型、逻辑型,导致对象无法通过运算符进行运算。故引入了
运算符重载
。
运算符重载
: 1:
运算符重载
,就是对已有的运算符(C++中预定义的运算符)赋予多重的含义,使同一运算符作用于不同
类型
的数据
时
导致不同
类型
的行为。 2:
运算符重载
的目的是:扩展C++中提供的运算符的适用范围,使之能作用于对象。 3:
运算符重载
的实质是函数重载,可以重载为普通函数,也可以重载为成员函数 4:把含运算符的表达式转换成对运算符函数的调用。
c++为什么要进行
运算符重载
?
运算符重载
是为了解决类对象之间的运算的,通常的运算符只用于算术运算,如常量int之间,因为编译器已经定义了;而一个类两个对象之间成员进行运算必须重新定义,让编译器在遇到对象运算
时
能按我们要求的进行运算,这就是
运算符重载
的意义,即重定义运算符,因此你可以看到,
运算符重载
就是为类对象服务的,那么两个对象的成员进行运算那必须先获得对象本身啦,所以
运算符重载
参数必须含有类指针或引用,这是主要...
重载赋值运算符
时
为什么需要
返回
引用
类型
?
c++ primer P492:赋值运算符的行为与复合版本(什么是复合版本)的类似,左侧运算对象和右侧运算对象的值相等,并且运算符应该
返回
它左侧运算对象的一个引用。 疑问:为什么要
返回
左侧运算对象的引用,
返回
它的拷贝不行? 参考其他人的博客:Jessica要努力了。。:c++赋值运算符为什么要
返回
引用? 做出以下的总结: 重载赋值运算符
时
不一定非得
返回
左侧运算对象得拷贝,但是如果不这样做出错的风险会加大。 当类没有指针
类型
的成员
时
返回
左侧对象拷贝不会出错,代码如下: Test.h #pragma once
运算符重载
之成员
运算符重载
成员
运算符重载
函数 成员
运算符重载
函数,即把
运算符重载
函数定义为某个类的成员函数。 1、定义成员
运算符重载
函数的语法形式 (1)在类的内部,定义成员
运算符重载
函数的格式如下: 函数
类型
operator 运算符(形参表){ 函数体 } (2)成员
运算符重载
函数也可以在类中声明成员函数的原型,在类外定义。 在类内,声明成员
运算符重载
函数原型的格式如下: class X{ 函数
类型
operat...
C语言
69,372
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章