C 的建構函式,和折構函式分別解釋下

2022-11-19 11:10:13 字數 2952 閱讀 9750

1樓:匿名使用者

1全部簡單的說,建構函式用來做新生成物件的初始化工作。在以往的設計中,由於沒有給變數初始化而帶來的麻煩在這裡幾乎沒有了。解構函式與建構函式對應,主要做空間的釋放工作。

當然了,如果類中沒有指標一類的需要建立空間的變數,那麼解構函式意義就沒有那麼大了。不過為了規範期間,還是完整的寫出為好。安全第一,你說呢?

下面給一個例子:

class a;

a::a(const char* ptr)a::~a()

//一些函式的定義

2樓:匿名使用者

建構函式

1 在變數宣告的時候自動呼叫該函式。

classname a; 自動呼叫classname的建構函式classname *b; 不呼叫

b=new classname 呼叫建構函式解構函式

1 在類定義的變數的生命週期結束時呼叫。

a 普通變數在生命週期結束,delete b;指標在被 delete 時呼叫建構函式,注意都是自動呼叫, 你可以在該函式中寫一些**, 可以自動執行。

關於c++的建構函式與解構函式,幫忙解釋下面程式 10

3樓:匿名使用者

感覺你這個題和構造析構沒啥關係。

a是parent類成員,b是child類成員,由於child是整合parent的,所以child的例項化也可以訪問parent的成員

就是陣列的第一個元素,是第二個

c++建構函式和解構函式的區別

4樓:匿名使用者

建構函式可以理解成 實現對內部成員變數的初始化操作。

解構函式則相反,當物件銷燬時,執行一些特定的操作,比方說:指標成員佔用的記憶體空間。

直接理解,一個是建立物件時給物件屬性賦值,一個是銷燬物件時,釋放屬性(或其它操作,比如,通知某個物件或什麼,告知他們:我被銷燬了之類的)

c++的建構函式和析夠函式誰能通俗的解釋一下,淺顯易懂的。

5樓:匿名使用者

建構函式是建立物件時呼叫,解構函式是釋放物件時呼叫;

比如:進入某個介面時,如果有load方法或者create方法,在進入在2個其中一個方法時,就代表建立了當前物件;

當 當前介面關閉時或者登出時,系統會自動呼叫解構函式;

6樓:初試鋒芒天啊

建構函式是建立物件時呼叫,解構函式是釋放物件時呼叫。

c++建構函式和解構函式

7樓:進擊的d絲

第三個錯的吧 不能初始化吧。只能int a;

c++的建構函式和解構函式問題

8樓:文正

在類裡面, 而沒有函式體的那個是宣告.

你就沒有發現在類外面定義的建構函式前面多了個cexample:: 啊?

::就是限定::後面的識別符號是::前面的內部成員.

所有類的成員函式都可以在類中宣告, 在類外定義

9樓:

預設建構函式是沒有引數的,cexample();

你下面那個圖是帶引數的建構函式,解構函式在物件所在的函式執行完了,自動呼叫的

#include

using namespace std;

class cexample

~cexample()

cexample (int b) //a2執行帶引數的建構函式,輸出3

void show()

};int main()

c++為什麼要有建構函式和解構函式

10樓:鼓巨肌

說簡單點就是為了方便初始化和記憶體釋放,建構函式可以在類物件建立的同時就進行一些初始化的操作,方便在後面的功能中提前做好準備;解構函式可以說是對立的功能,在類死亡前做一些遺言的交代,該裡的遺囑要說清楚,不能這麼不清不出的掛了,啥也不管,讓家人擔心,煩惱。就是個設計的輔助東西,就像人吃飯要拿筷子,甚至洗手之類的,當然你說不要也行,c++的類的建構函式和解構函式也不是必須的,你也可以在其他時機進行初始化和掃尾操作的。但是既然語法提供了,咱直接用就可以,有好處的。

c++中建構函式與解構函式的問題

11樓:

天啊!這還是**嗎?

好幾個問題,簡直慘不忍睹:

getid無返回值

getscore無返回值

呼叫getscore應傳人蔘數

p1初始化時出錯,student無預設構造引數,加入"student(){}"

int getid(int  id;)傳入cin時不會修改成員變數id的值,修改的是形參id的值,成員變數id不會被修改

float getscore(float score )傳入cin時不會修改成員變數score的值,修改的是形參score的值,成員變數score不會被修改

int getid(int  id;)int id後面多了分號

student(int id,float score)的

id=student.id ; score=student.score;出錯,student未定義,應該為this,並且

student(int id,float score)的

id=this->id ; score=this->score;出錯,左值右值寫反了,改為this->id = id;

this->score = score

錯誤結果,在visual c++ 6.0編譯出現6個錯誤,visual studio 2015我不敢用,直覺告訴我,至少10個錯誤,5個警告

12樓:匿名使用者

你的getname函式在**?你的類定義中只有getscore和getid

C建構函式過載的問題,C建構函式和解構函式可以過載嗎

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

在C語言函式中主調函式和被調函式分別是指函式中的哪個部分?函式的返回值又是什麼

include int fun void int main int fun void int 表示bai這個函式 的返回值是整型的 du就fun與main函式來zhi說main函式是主調函dao數,fun函式是被版調函式,因為fun在權main函式中被呼叫,return 5 就是fun函式的返回值 ...

單繼承和多繼承的派生類建構函式和解構函式的構造規則和執行順序是怎樣的

多繼承派生類建構函式的執行順序是先執行所有基類的建構函式 順序按照定義派生類時指定的各基類順序 再執行派生類的建構函式,解構函式執行順序,與建構函式完全相反 因為,資料是按棧儲存的 單繼承先執行基類建構函式,在執行派生類建構函式,解構函式執行順序與建構函式相反。當基類的建構函式沒有引數,或沒有顯式定...