C 20標準下,有哪幾種建構函式型別?

時間 2021-06-06 17:44:12

1樓:d41d8c

有用的歸類就是特殊的(special member functions)和其他的、支援隱式轉換的(converting constructor)和explicit的。

特殊的建構函式包括預設建構函式(default constructor)、複製建構函式(copy constructor)和移動建構函式(move constructor)。這些在一定情況下會隱式生成。

隱式生成的特殊成員函式可能為trivial。

特殊的建構函式一般不宣告為explicit。

沒有宣告為explicit或者宣告為explicit(false)的是converting constructor,它們可以用於複製初始化(copy-initialization),注意隱式轉換就是複製初始化。

還有些其他特徵比如

(實現細節→)虛基類建構函式和完整物件建構函式模板和非模板

是否inline

是否有function-try-blockinitializer-list constructor和其他是否noexcept

是否constexpr

是否 = delete;

是否可用於CTAD

是否有constraint

constraint是否成立

這些就沒什麼意思了。

2樓:

自認為對c++還算了解,但也不知道面試官6種是什麼不是結構體的:

inta=1

;用大括號的:

autox=

T;autoy=

T;3. C++

classT;

至於T(const T&&), T(T&)這些,就不應該拿出來說事了。。

如果不考慮原始型別的直接初始化,只有5種。如果沒有user-defined-ctor,Copy/Move都是trivial的,trivial的copy/move在優化上很特殊。

如果面試官再多問就沒必要搭理他了,玩物喪志。

如何看待 Module 確認進入 C 20 標準?

maja 其最期待的還是基於future的方案和底層網路庫深度整合。因為croutine,如果要使用,需要很地方都是按非同步中斷去寫,比較期待,grpc cpp 等庫完全支援,並相容各種核心事件。樓上的熱巴也不懂幽默感,你看懂了又能怎麼樣,我們又不是同行。 和問題本身不相關,所以匿了 This an...

devil blues deluxe和C20口琴哪個好,或者有更加好的打算(200 400)

丟失的草帽 devil blues deluxe和c20都沒吹過。但本人吹過並且擁有藍網十週年,wooden voice,proreeds及babyfat可以說藍網琴的水平很高可以說是中國產口琴的精品。和萊的sp20,mb1896,mbd,mbc自己也吹過也擁有過部分。賽德的1847c自己也擁有。我...

C 20為什麼用單數的contains ?

英語語法的問題。list.insert x 用自然語言來說是 insert x into list 主語反正不是list,沒必要用第三人稱單數。list.remove x 同理相當於 remove x from list 而list.contains x 用自然語言表述是 The list cont...