c++再记

c++报错:
  cannot call member function “virtual void A:: initialize()”without object
  例题:16.1 还是困惑
  https://www.xuebuyuan.com/944681.html

2.在我们使用初始化列表进行初始化时,要注意一个特性,它是关于C++初始化类成员的。它们是按照声明的顺序初始化的,而不是按照出现在初始化列表中的顺序。

例如:
class CMyClass { 

CMyClass(int x, int y); 

int m_x; 

int m_y; 
}; 

CMyClass::CMyClass(int i) : m_y(i), m_x(m_y) 
{ 

} 
你可能以为上面的代码将会首先做m_y=I,然后做m_x=m_y,最后它们有相同的值。但是编译器先初始化m_x,然后是m_y,,因为它们是按这样的顺序声明的。结果是m_x将有一个不可预测的值。

***

## 3.派生类的成员函数如何访问基类的构造函数 例题16.4

***
因为不能
为什么不能通过对象调用构造函数
打个比方,对象是个人的话,构造函数就是这个人的产生过程:或取资源,按照定义方式生长
而通过对象调用构造函数大概就是人已经出生了再进行一次出生前的过程了 
构造函数不可以直接调用,这里的直接调用指的是像普通的成员函数那样调用
必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章