在一个C/C++ fans网站上看到这样的问题

kulama2004 2003-09-14 04:07:21
第六题:

这个程序中的//some code部分,如果是有效代码的话,会被执行到吗??
...
j=++i;
if(i==j)
{
  //some code
}
...



这个程序中的//some code部分,如果是有效代码的话,会被执行到吗??
class Funny
{
public:
  bool operator==(const Funny&)
  {
    return true;
  }
  Funny& operator++(void)
  {
    return *this;
  }
  //...
};

Funny i,j;

j=++i;
if(i==j)
{
  //some code
}
...全文
28 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
iceheart 2003-09-15
  • 打赏
  • 举报
回复
考虑多线程
xhzhf 2003-09-15
  • 打赏
  • 举报
回复
完全可以
hangdian 2003-09-15
  • 打赏
  • 举报
回复
可以当然有这种可能
搬不搬砖 2003-09-15
  • 打赏
  • 举报
回复
可以啊,运算符重载
pcyy 2003-09-15
  • 打赏
  • 举报
回复
xiaoyige886(素还真) :
谢谢你的回答。
呵呵。
lianglianqing 2003-09-14
  • 打赏
  • 举报
回复
我运行了这个代码
#include<iostream>
using namespace std;
class Funny
{
public:
bool operator == (const Funny&)
{
return true;
}
Funny& operator ++ (void)
{
return *this;
}
};
void main()
{
Funny i,j;
j=++i;
if (j==i)
cout<<"ok"<<endl;
system("pause");
}

可以运行输出ok
晨星 2003-09-14
  • 打赏
  • 举报
回复
作者已经吧++和==的语义改变了。
norikos 2003-09-14
  • 打赏
  • 举报
回复
程序作者用重载改变了操作符的语意而已!
GhostAdz 2003-09-14
  • 打赏
  • 举报
回复
楼上的楼上好象错了吧
这是两个类类型
kulama2004 2003-09-14
  • 打赏
  • 举报
回复
-_-
类里面已经把“++”和“==”重载了
仔细看看清楚
发表意见前好好想想
xiaoyige886 2003-09-14
  • 打赏
  • 举报
回复
j =++i;
等价于:i = i +1;
j = i;
pcyy 2003-09-14
  • 打赏
  • 举报
回复
j=++i;
不就是相当于解j=i+1(了吗)
怎么还可以:i==j呢??
我很菜,提出这样的问题,不要见笑。^_^
请高人回答一下,谢谢。
loveghb 2003-09-14
  • 打赏
  • 举报
回复
完全可以啊!
ttlb 2003-09-14
  • 打赏
  • 举报
回复
我认为可以
Yssss1980 2003-09-14
  • 打赏
  • 举报
回复
由此可见

C++对用户自定义类型的支持简直和原生类型用起来是一样的
wolfyang 2003-09-14
  • 打赏
  • 举报
回复
有可能,你还不记得有个循环的问题和她差不多

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧