我刚才读的this answer,如果你有下面的代码班级成员初始化的顺序是什么?
class Base
{
public Base()
{
}
}
class One : Base
{
string test = "text";
}
class Two : Base
{
string test;
public Two()
{
test = "text";
}
}
一个类initializaton One.test将基地前initalized ::基地之称。但是,在调用Base :: Base之后,Two.test将被初始化。
我想这是因为在这两种情况下,它是
- 领域< - 这包括One.test
- 基地:: Base的()
- 一::一()或二::两个()< - 初始化Two.test
我想我记得初始化列表只是在构造函数之前。 所以是初始化命令即可:
- 领域
- 基地初始化列表
- 基构造
- 自己的初始化列表
- 自己的构造
哪里做基础领域进来?当分配内存时或者在当前基类的初始化列表之前,是否所有字段都是初始化的?
在列表中您还可以想到其他步骤吗?
如果有人能给出一个好的概述,我将不胜感激。
那么你是如何连接使用C++一个C#的答案吗? – 0x499602D2
完全错过了。那么,我仍然想知道它在C++中的工作原理。 – Sarien
已编写的代码在C++中无效。 – deepmax