我是 C 新手,并試圖理解一些東西。我的 main.cpp 中有這段代碼:
Radio r = Radio("PSR", 100.8);
或該代碼:
Radio r("PSR", 100.8);
兩者似乎都作業并且做同樣的事情。那么有什么區別呢?
uj5u.com熱心網友回復:
Radio r = Radio("PSR", 100.8);是復制初始化,Radio r("PSR", 100.8);而是直接初始化。
C 17
由于強制復制 elison從 C 17 開始,兩者都是等價的。
Radio r = Radio("PSR", 100.8); //from C 17 this is same as writing Radio r("PSR", 100.8);
之前的 C 17
但是在 C 17 之前,第一種情況Radio r = Radio("PSR", 100.8);可能會導致創建一個臨時使用,該使用r是復制初始化的。這是因為在 C 17 之前,有非強制復制 elison。
另一件需要注意的是,如果你要寫:
type name(); //this is a function declaration
上面是一個名為的函式的宣告,該函式name具有回傳型別type和0引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/484614.html
