16-3.txt
来自「C++完美演绎源代码」· 文本 代码 · 共 40 行
TXT
40 行
/* 范例:16-3 */
#include <iostream.h>
class A
{
public:
double A_dou;
string A_str;
char buf[20];
A(double dou):A_dou(dou){} /* A类的构造函数 */
/* 声明operator+,this是隐含的第一个参数 */
A& operator+(string str)
{
gcvt(A_dou,5,buf); /* 将double类型的数值转换为以'\0'为结尾的ASCII字
符串 */
A_str=buf+str;
return *this;
}
/* 声明operator+的Overload,this是隐含的第一个参数 */
A& operator+(double dou)
{
A_dou=A_dou+dou;
return *this;
}
};
void main(void)
{
A obj1(5.7); /* 构造一个A类的对象obj1 */
obj1=obj1+"peter"; /* 编译器将其编译成obj1 = obj1.operator+("peter") */
cout <<"对象obj1+字符串Peter=" <<obj1.A_str <<endl;
obj1=obj1+5.1; /* 编译器将其编译成obj1 = obj1.operator+(5.1) */
cout <<"对象obj1+5.1=" <<obj1.A_dou <<endl;
getchar();
}
程序执行结果:
对象obj1+字符串Peter=5.7peter
对象obj1+5.1=10.8
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?