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

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

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

C++
千巷猫影 2019-06-07 12:06:24
#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");}
查看完整描述

4 回答

?
交互式爱情

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

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



查看完整回答
1 反对 回复 2019-06-08
?
weixin_慕斯卡5464189

TA贡献1条经验 获得超0个赞

CComplex CComplex::add(CComplex &x) (这一句 不懂为何 类名 类名::对象)

前面的CComplex 应该表示的是要返回的类型是CComplex 类型

第二个CComplex 应该才是表示作用域

不知道理解的对不对

查看完整回答
反对 回复 2020-09-23
?
互换的青春

TA贡献1797条经验 获得超6个赞

:在C++中叫做域操作符

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


查看完整回答
反对 回复 2019-06-08
  • 4 回答
  • 0 关注
  • 1453 浏览

添加回答

举报

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