为了账号安全,请及时绑定邮箱和手机立即绑定

c++中如 类名 类名::对象 是什么意思

c++中如 类名 类名::对象 是什么意思

C++
慕哥6287543 2019-04-15 12:08:07
#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 回答

?
绝地无双

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类型的引用

查看完整回答
反对 回复 2019-04-16
?
狐的传说

TA贡献1804条经验 获得超3个赞

就是操作不同类中的对象,就要用域操作符。
::是C++里的“作用域运算符”。
比如声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。
:: 一般还有一种用法,就是直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,在类内定义的时候,打此函数名默认 调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。比如在VC里,你可以在调用API函数时,在API函数名前加::。

查看完整回答
反对 回复 2019-04-16
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

::在C++中叫做域操作符
类函数的实现可以在类的定义中,也可以在定义中只声明函数,而在定义外实现函数,那么实现时要告诉编译器实现的是哪个类的函数,就要用到域操作符::,类名::成员函数的这种写法就是说明当前实现的函数是::前面那个类的成员函数,不知道有没有讲清楚

查看完整回答
反对 回复 2019-04-16
  • 3 回答
  • 0 关注
  • 604 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信