C建構函式與符號過載問題,求指點

2021-03-03 21:28:40 字數 2283 閱讀 6981

1樓:幻形術

//嚴格的拷貝建構函式是這樣的,const 引用才能接受右值包括常量、const只讀量、臨時量

person(const person &p)

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

2樓:幻夢·人生

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

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

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

3樓:我喜歡看火影

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

4樓:匿名使用者

嗯,是這個意思,沒來

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

5樓:匿名使用者

你都想通了還問什麼。。

c++關於拷貝建構函式和等號的過載

6樓:成都癲癇匯康

複製建構函式接受

bai單du

個類型別引用形參,這個形zhi參一般用const修飾。

class a

;一般的類,編譯器dao合成內

的建構函式就能完成必要的工作。擔當類有一個資料成員是指標,或者成員表示在建構函式中分配的其他資源;在建立新物件時必須做一些特定工作。這兩種情況必須定義複製建構函式。

複製操作符過載,由operator後面跟所定義的操作符符號,通過定義名為operator=函式來對賦值進行定義。該操作符函式有兩個形參:第一個形參對應左邊的運算元(隱式繫結到this指標了),第二個形參對應右運算元。

返回型別應該與內建賦值運算返回的型別相同,內建型別的賦值運算返回對右運算元的引用,賦值操作符也返回對同一型別的引用。

class b

;可以使用合成複製建構函式的類通常也可以使用合成賦值操作符。一容般來說,如果類需要複製建構函式,也就需要賦值操作符。

7樓:巫馬尓絲

一個類的建構函式只有在定義該類的物件時候才會呼叫,而且每個物件只有一次呼叫構造函版數的機會,權myclass obj3 = obj1,這個是在定義物件時候的賦值,所以呼叫的是copy建構函式。

myclass obj3 = obj1 等價於myclass obj3(obj1),這個判斷應該是正確的。

myclass obj3;

obj3 = obj1;這樣就不是屬於建構函式了。

你的建構函式只發生在定義一個物件的時候,定義完了以後再賦值,就是=號過載了。

c++建構函式過載的問題?

8樓:和小敘

你那不叫重灌,叫語法錯誤。你在定義hujiaoqi類的時候已經實現建構函式的過載了,即一專個是無參的建構函式hujiaoqi() ,一個是有參的hujiaoqi(int),類的建構函式只呼叫一次,而且不管有多少個建構函式,屬只會呼叫其中一個,並且是在定義物件的時候自動呼叫的,具體是呼叫哪個根據定義物件時傳入的引數來決定。 即你上面寫的hujiaoqi h()

9樓:匿名使用者

h(i); //過載

這裡有問題麼?

c++建構函式及其過載問題

10樓:心願

看不出來有過載 第一處劃線的只是定義了建構函式。第二處劃線的是對第一處的函式體的內容寫完整

11樓:匿名使用者

你看它不帶引數的,就說明不是你過載那個

12樓:匿名使用者

當然是第一條橫線上的

c++建構函式的過載問題

13樓:頑石

因為對於後者來說,當執行my_class c1語句時,c1可以呼叫my_class建立物件,也可以呼叫my_class(float x = 3.5, float y = 8.5)建立物件.

但是這會產生兩個不同的c1物件,極易發生歧義。所以系統不知道要呼叫那個建構函式產生物件,也不會允許程式這麼做。

C 呼叫特定建構函式的問題

其實這個問題可以利用一個專門類來解決,解決四路同上面老兄相同。下面是例子。比如class a a class b b class c static b create type3 a,type4 b,type5 c 每次要建立新類時,就呼叫 c create a,b c create a,b,c 還可...

虛擬函式與過載函式的區別與聯絡,C 多型性。 基類的虛擬函式和過載函式的區別,是不是一個是在執行時發生,一個是在編譯時發生?

abstract 抽象方法 virtual 虛方法 過載函式就是override的方法 比如 父類a.m 子類b.m 1 abstract的方法,父類可以不實現,讓子類去重寫 重寫 overwrite,不過一般不會提到 父類如果存在abstract方法,那麼必然是抽象類,必然不能直接例項化 比如 a...

C 類與函式的定義問題

一 thitinfo int nodeid,double hittime 值傳遞 引用傳遞 常量引用傳遞 預設常量引用傳遞 二 加const的意思是不改變形參的值,呼叫時,實參可以是const,也可以是非const...