注意函数的执行顺序,析构函数是最后才调用的,调用时会执行内部释放对象成员指针的语句,所以,成员对象指针会先进行析构释放,然后才是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