c++中的怪问题。(我以前从来没见过)

diabloqin 2003-05-09 08:43:20
有关运算符重载

class byte
{
unsigned char b;
public;
byte(unsigned char B = 0):b(B){}

const byte operator + (const byte & right) const
{
return byte(b+right.b);
}
/*......
省略n多运算符重载函数
......*/

#define TRY2(op) \ //这个宏定义什么意思?
out << "b1 = ";
b1.print(out);\ //‘/’符号有什么用?
out << "b2 = ";
b2.print(out);\

(b1 op b2).print(out);\
out <<endl;

b1 =9;b2 =47;
TRY2(+) TRY2(-) TRY2(*) TRY2(/) //什么意思呀?
//......
}


高手请赐教。
...全文
29 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReplyRobot 2003-05-11
  • 打赏
  • 举报
回复
UP
MessiahLS 2003-05-10
  • 打赏
  • 举报
回复
看不懂,好深奥!
liwei55555 2003-05-10
  • 打赏
  • 举报
回复
我也来up!
diabloqin 2003-05-10
  • 打赏
  • 举报
回复
再up
diabloqin 2003-05-10
  • 打赏
  • 举报
回复
自己up
lifanxi 2003-05-09
  • 打赏
  • 举报
回复
C++的经典之作The C++ Programming Language和C++ Primer都对C++的特性作了相当全面的描述。
xxking 2003-05-09
  • 打赏
  • 举报
回复
再请问一下,一般的c++中没有提到过这些东西,请问一下有没有参考书
xxking 2003-05-09
  • 打赏
  • 举报
回复
c++里还有这些东西的啊,今天算是长了见识了,
diabloqin 2003-05-09
  • 打赏
  • 举报
回复
有道理
reinhard_liu 2003-05-09
  • 打赏
  • 举报
回复
op 就是指operator拉,
TRY2(+) 就是
out << "b1 = ";
b1.print(out);
out << "b2 = ";
b2.print(out);

(b1 + b2).print(out);
out <<endl;

因为operator + 重载了
所以 b1+b2 这个表达式 是一个 byte 对象 是用 b1.b+b2.b的值初始化的byte对象

其他的也一样
lifanxi 2003-05-09
  • 打赏
  • 举报
回复
这个宏定义了为了下面写起来方便。
\用来在宏定义中换行。
整个一段程序在经历宏替换后就变成了.
out << "b1 = ";
b1.print(out);
out << "b2 = ";
b2.print(out);
(b1 + b2).print(out);
out <<endl;
out << "b1 = ";
b1.print(out);
out << "b2 = ";
b2.print(out);
(b1 - b2).print(out);
out <<endl;
out << "b1 = ";
b1.print(out);
out << "b2 = ";
b2.print(out);
(b1 * b2).print(out);
out <<endl;
out << "b1 = ";
b1.print(out);
out << "b2 = ";
b2.print(out);
(b1 / b2).print(out);
out <<endl;

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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