c++ - 我如何解释这段 C++ 代码?

标签 c++

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/

相关文章:

c++ - 调试断言失败! (字符串下标超出范围)

c++ - 警告 : format not a string literal and no format arguments

c++ - 为什么不调用覆盖的 `operator new`?

c++ - 在 Rails 应用程序中在线编译 C++

c++ - 将大字符串从 BSTR 转换为 std::string?

c++ - 如何从智能感知中正确隐藏方法和属性

c++ - 如何将 C++ 控制台输出保存在文本文件中?

C++:接受带有一个参数的任何函数的模板?

c++ - 按位读取缓冲区

c++ - 与字符串文字 C++ 的比较