為什麼要用n來初始化num 這有何意義?

時間 2021-06-01 20:44:58

1樓:

這個建構函式就是全部引數都賦值了,你也可以設定預設值,你也可以寫無參建構函式,無參構造就像你說的你可以全部賦值0或者空,另外你這三個變數都是private,後續你是無法直接訪問的,你不賦值,那你就寫幾個函式去操作這幾個變數,或者改成public直接操作。

c++很自由,你想幹啥都行啊,你覺得這個建構函式不行,你可以隨便過載~stl初始化方法也不止一種。

2樓:李昕

你要把乙個類初始化成乙個物件。比如說,現在有乙個類,類名是人。你需要使用的時候需要把他進行例項化(建構函式),賦予他姓名、性別、出生日期等等屬性。

他才成為了乙個【例項】,成為了某乙個存在的人,才能夠被呼叫。

建構函式裡的引數就是用來賦值這些屬性的。你可以賦值給乙個變數叫姓名、年齡……。但是無法知道這個變數是歸屬於誰的,誰的姓名都可以是姓名都可以name。

物件導向,就是把這些構成特殊體的屬性匯集到一起,形成了【類和物件】的概念。

另外乙個問題是,類的定義和宣告的時候,類的物件還沒有產生。你需要在main裡呼叫到類的構造方法以後。才會有類的物件產生,所以,建構函式是傳的型參,你還不知道要給他起名叫什麼,只有等他出生了以後才起名,當然你也可以寫死他的屬性,比如建構函式裡寫死某個性別為男,那麼呼叫建構函式生產的物件,就全部都是男性了。

3樓:windliang

你可能對函式的形參、實參還沒有懂。

比如我定義乙個函式。

intfun1

(inta)

上邊的 a 在呼叫之前,代表幾始終是不確定的,所以就形參,只是乙個形式。它的作用在呼叫它的時候才顯現出來。

intb=3

;fun1(b

);//這裡的 b 就叫做實參,實實在在的引數,有乙個確定的值。

然後上邊的包含

a的地方就可以按下邊的樣子理解

intfun1(3

)所以呼叫的時候它就是乙個確定的數字了。

你說的建構函式 num = n

n 就是乙個形參,呼叫它之前確實是乙個不確定的數,但呼叫它的時候,它一定接受了乙個實參,成為乙個確定的數。

為什麼mxnet的卷積層初始化需要weight和bias,但kera的卷積層不需要?

Wison keras.layers.convolutional.pyclass Conv2D Conv def init self filters kernel size strides 1,1 padding valid data format None dilation rate 1,1 ac...

為什麼C語言指標初始化左邊是值,右邊是位址?

一直流浪 左邊是變數名,右邊必須賦值位址,c 5 int a c 相當於int a a c int 是資料型別,a是變數,一定要分開,先分清變數和資料型別你說的printf d a 其實是指標的乙個操作,取值操作,拿到指標a那片儲存空間的資料,即c的位址 追遠 J int a n 是 int a a...

這三種初始化方法有什麼區別?

As an added syntactical bonus when initializing an array,you can write the following String names Notice that on the right of the assignment operator ...