c 裡過載operator會不會後和建構函式在表示式上有衝突呢

時間 2021-09-04 03:24:51

1樓:黃邦勇帥哥哥

樓主真有材,ca是一個類,可以直接ca(10)這樣書寫嗎?

樓主可能對操作符過載的意義沒有弄明白吧,操作符過載的目的是方便兩個物件之間進行操作,也就是說操作符過載操作的是類建立的物件,並不是針對類的。比如class a{};class b{}; 你不可以過載操作符讓類a和類b相加,也就是說a+b不可能,只能過載讓類a的物件,或者類b的物件之間相加,比如a ma,mb; 那麼可以過載+以使ma+mb;能直接進行相加運算。

明白了以上道你,你就應該很清楚了,過載()運算子不可能會和建構函式搞混。因為你在呼叫建構函式的是候,是在為類建立一個物件,也就是說在建構函式呼叫之前根本就沒有可貢操作符過載可操作的類的物件,那麼怎麼會搞又會呼叫到過載的()去呢?

因此一樓說的沒有錯的,ca a(10)的時候是在建立類ca的物件a,這時並沒有類ca的物件,所以不可能會呼叫過載的(),而cout<

現在應該明白了吧。

2樓:匿名使用者

怎麼會呢?

class ca

;ca(int x) ;

~ca() ;

int& operator()(int x)};...

int main(...)

c++中關於呼叫操作符的過載operator()與自定義建構函式

3樓:匿名使用者

thread thrd1(count(10), 5);

thread thrd2(count(20), 10);

順帶一提, c++11 已有執行緒庫,無需使用 boost

c++複製建構函式和=號過載問題

4樓:幻夢·人生

表述基本上沒有問bai題。從功能上來du說,建構函式是用於建立zhi物件的dao,operator其實是可以看成普通內的成員函式,只不容

過是以符號的形式代替文字,看上去更加直觀。

所以在建構函式中,需要對成員變數進行初始化,包括建立所需的空間等等。而operator呼叫時,物件已經建立完畢,不需要繼續進行空間的建立。

5樓:我喜歡看火影

如果物件在宣告的同時將另一個已存在的物件賦給它,就會呼叫複製建構函式;如果物件已經存在,然後將另一個已存在的物件賦給它,呼叫的就是賦值運算子(過載)

6樓:匿名使用者

嗯,是這個意思,沒來

有複製構自造之前,你的storedvalue沒有初始化,bai存的du是隨機地址,所以這時zhi使用*storedvalue = *rhs.storedvalue;去改變那個隨dao機地址裡的值是很危險的。

7樓:匿名使用者

你都想通了還問什麼。。

在控制面板裡解除安裝掉程式之後會不會在C盤裡還有殘留的資料夾

經常會有,可以用360強制解除安裝,現在的防毒軟體基本上都有這個功能,也可以重啟計算機,手動刪除。 你不要用控制面的解除安裝,用360的軟體管家的解除安裝 解除安裝後 會檢測殘餘檔案 可以選擇性清理 這個是不會的,控制面板卸掉的東西就會消失 解除安裝軟體會不會清不乾淨?我在控制面板裡面解除安裝東西后...

C 裡過載了的運算子是否還保持原來的優先順序別

c 還保持原來的優先順序別 袁方旭 規劃局規劃符合符合法規 堂糖卻 運算子過載的時候最好不要改變優先順序,容易混淆,而且可讀性也不好 過載並不能改變運算子的優先順序 要不然就亂套了 運算子過載的規則 1.友元運算子的引數規則與類成員運算子的引數規則不同,一員運算子必須顯式地宣告一個引數,二員運算子必...

魔獸真三郭嘉C瞬間司馬F會不會扣血

郭嘉的c原型是地穴領主的e,我們知道地穴領主的e會把人刺上天空,然後落地,在天空的時候被e的人是無敵的,而在地面的時候就可以攻擊了。郭嘉的c的原型就是這個技能,雖然技能把被c住的人刺上天的過程放到非常短的時間裡 也就是那個無敵的時間已經可以忽略不計 但是畢竟還是有那麼一瞬間是無敵的。所以如果司馬的f...