注意函數的執行順序,析構函數是最后才調用的,調用時會執行內部釋放對象成員指針的語句,所以,成員對象指針會先進行析構釋放,然后才是coordinate的對象
寧外請注意:
對象成員如果無默認構造函數則必須在當前對象構造函數后使用初始化列表進行初始化,此時構造函數順序為對象成員的構造函數coordinate,當前對象的構造函數line。
對象成員指針,則應該在當前對象的構造函數中調用本身的構造函數初始化,此時構造函數調用順序為當前對象的構造函數line,對象成員指針的構造函數coordinate。
寧外請注意:
對象成員如果無默認構造函數則必須在當前對象構造函數后使用初始化列表進行初始化,此時構造函數順序為對象成員的構造函數coordinate,當前對象的構造函數line。
對象成員指針,則應該在當前對象的構造函數中調用本身的構造函數初始化,此時構造函數調用順序為當前對象的構造函數line,對象成員指針的構造函數coordinate。
2019-09-01
Coordinate的指針原型不是Coordinate *this;而是Coordinate *const this;
2019-08-15
老師用的什么編譯器?什么版本啊,感覺好簡潔,我用的vs2019問題比代碼多。。。有沒有老哥知道這是什么編譯器?
2019-07-12
注意這一行
Line::Line(int x1, int y1, int x2, int y2) :m_coorA(x1, y1), m_coorB(x1,y1)
//初始化實際上是調用了構造函數Coordinate(int x,int y)
Line::Line(int x1, int y1, int x2, int y2) :m_coorA(x1, y1), m_coorB(x1,y1)
//初始化實際上是調用了構造函數Coordinate(int x,int y)
2019-03-21
https://blog.csdn.net/zaishuiyifangxym/article/details/88639390 這是我記錄的筆記 和 源代碼 互相學習
2019-03-21