我该如何解释这个C ++代码?

时间:2011-06-13 07:23:18

标签: c++

NetworkManager::NetworkManager():m_Thread(0), m_Continue(true), m_Init(false){
}

第一个是名称空间,第二个是函数的名称。那三个参数是什么?我认为它可能与继承有关,但那些不是类名。这些是私人变量。

提前致谢。

4 个答案:

答案 0 :(得分:12)

这是构造函数的定义 - 没有名称空间。

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;

这样的初始化优于构造函数体中的赋值,原因如下:

  • 许多类型不支持分配
  • 通常效率更高
  • 它消除了构造函数代码的其余部分中未初始化对象的可能性

答案 1 :(得分:3)

NetworkManager::NetworkManager():m_Thread(0), m_Continue(true), m_Init(false){ } 

代码使用C ++的一个名为Initializer Lists的功能。它会在NetworkManager的构造函数被调用之前初始化类NetworkManager的成员。

它只是:

m_Thread = 0;
m_Continue = true;
m_Init = false;

答案 2 :(得分:1)

这是一个类构造函数,使用成员初始化语法在执行其主体之前设置字段(或调用基类构造函数)。

答案 3 :(得分:1)

这是NetworkManager类的构造函数,它具有(至少)3个成员数据成员m_Thread,m_Continue,m_Init,它们分别设置为值0,True和False。