您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關C++中怎么使用=default生成默認構造函數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
從C++基本知識說起
struct Point{
int x;
int y;
};
代碼內容很簡單,定義了一個包含成員x,y的類Point。在需要的地方可以使用這個類:
Point pt;
pt.x = 10;
pt.y = 10;
雖然我們并沒用定義Point類的構造函數,我們依然可以定義Point類的pt對象并使用它,其原因是編譯器會自動生成一個缺省的的構造函數。其效果大致相當于:
struct Point{
Point(){}
int x;
int y;
};
一切看起來是那么的美好,但是一旦因為其他原因添加了其他有參數的構造函數,編譯器就不再生成缺省的構造函數了。
C++11的解決方案
C++11允許我們使用=default來要求編譯器生成一個默認構造函數:
struct Point{
Point()=default;
Point(int _x, int _y):x(_x),y(_y){}
int x = 0;
int y = 0;
};
看完上述內容,你們對C++中怎么使用=default生成默認構造函數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。