#include<iostream>using namespace std;class CComplex{public:CComplex(double,double);CComplex(CComplex &c);CComplex add(CComplex &x);void print();private:double real;double image;};CComplex::CComplex(double r=0.0,double i=0.0){real=r;image=i;cout<<"调用两个参数的构造函数"<<endl;}CComplex::CComplex(CComplex &c){real=c.real;image=c.image;cout<<"调用拷贝构造函数"<<endl;}void CComplex::print(){cout<<"("<<real<<","<<image<<")"<<endl;}void f(CComplex n){cout<<"n=";n.print();}CComplex CComplex::add(CComplex &x) (这一句 不懂为何 类名 类名::对象){CComplex y(real+x.real,image+x.image);return y;}int main(){CComplex a(3.0,4.0),b(5.6,7.9);CComplex c(a);cout<<"a=";a.print();cout<<"c=";c.print();f(b);c=a.add(b);c.print();system("pause");}
3 回答
![?](http://img1.sycdn.imooc.com/5333a1920001d36402200220-100-100.jpg)
绝地无双
TA贡献1946条经验 获得超4个赞
CComplex CComplex::add(CComplex &x) (这一句 不懂为何 类名 类名::对象)
{
CComplex y(real+x.real,image+x.image);
return y;
}
CComplex是返回的类型,return y;中的y不就是CComplex类型么。
CComplex::add(CComplex &x)在add前面加CComplex::是域的意思,是为了告诉其他程序,这个add函数是CComplex的
CComplex &x的意思是参数x是CComplex类型的引用
![?](http://img1.sycdn.imooc.com/533e4d5b0001d57502200203-100-100.jpg)
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
::在C++中叫做域操作符
类函数的实现可以在类的定义中,也可以在定义中只声明函数,而在定义外实现函数,那么实现时要告诉编译器实现的是哪个类的函数,就要用到域操作符::,类名::成员函数的这种写法就是说明当前实现的函数是::前面那个类的成员函数,不知道有没有讲清楚
- 3 回答
- 0 关注
- 604 浏览
添加回答
举报
0/150
提交
取消