NetworkManager::NetworkManager():m_Thread(0), m_Continue(true), m_Init(false){
}
第一个是命名空间,第二个是函数名。那三个参数是什么?我认为这可能与继承有关,但这些不是类名。这些是私有(private)变量。
提前致谢。
最佳答案
这是构造函数的定义——没有命名空间。
NetworkManager :: NetworkManager() : m_Thread(0), m_Continue(true), m_Init(false){
}
构造函数用于名为 NetworkManager 的类,它使用初始化列表初始化其成员。发生的事情是概念上的(如果不是完全准确的话):
NetworkManager :: NetworkManager() {
create "empty" NetWorkManager object
initialise its m_Thread with zero
set its m_Continue to be true
set its m_Init to be false
}
然后您使用构造函数创建一个完全初始化的对象:
NetworkManager manager;
由于以下几个原因,像这样的初始化优于构造函数主体中的赋值:
- 很多类型不支持赋值
- 通常效率更高
- 它消除了构造函数代码其余部分中未初始化对象的可能性
关于c++ - 我如何解释这段 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6327639/