亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 1505 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號