VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1867|回复: 14

vc++中的==的问题,在线等待

[复制链接]

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-2-6 15:00:01 | 显示全部楼层 |阅读模式
假如自己定义的类A,我定义两个对象如下:
A a, b;
if (a == b) {
}
这样写代码可以吗?
是不是a == b这儿编译会出错误?
为什么?
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-25 19:30:01 | 显示全部楼层
重载操作符
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-25 20:15:01 | 显示全部楼层
会出错,如果要这么用,你需要为你的类定义"=="运算符.
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-25 22:30:02 | 显示全部楼层
重载==操作符

bool A::operator==(const A& ins)
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-26 00:15:01 | 显示全部楼层
a ,b 是类的变量 ,类中不带比较函数的,要自己再写个重载函数比较才可以的。就像a=b,调用考贝函数。就像若类A中定义CArray<int ,int> m_IDArr , 则调用a=b就会出错,因为m_IDArr无考贝函数,这样就要自已定义考贝函数了。
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-3-26 09:30:01 | 显示全部楼层
如果我重载了=,但是没有重载==,我
A a, b;
if (a == b) {
}

这样写可以吗?
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-3-26 12:00:01 | 显示全部楼层
如果可以,为什么可以?
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-26 20:30:01 | 显示全部楼层
=非==
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-27 00:15:01 | 显示全部楼层
语言基础如此之差 都拿到那么多三角啦

mfc真不需要语言支持吗^-^
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-3-27 23:15:01 | 显示全部楼层
楼上的2个高手试过重载=不重载==,肯定行不通吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表