c++ - 奇怪的构造函数

标签 c++ syntax constructor definition

好吧,我会很直截了当,我只有一段 C++ 代码,我不确定我是否真的理解它,需要一些帮助。

好吧,为了简化起见,我们只说我有一个这样定义的类:(真正的类有点复杂,但这才是最重要的)

class myClass : public Runnable {
    Semaphore *m_pMySemaphore;
    __Queue<Requests> *m_pQueue;
    Request m_Request;
    VetorSlotBuffer *m_vetorSlotBuffer;
}

到这里没有任何问题,myClass 只是一个常规类,它有 3 个成员,它们实际上是指向其他类的指针和类 Request 的一个对象,这些类的实现对我在这里的观点并不重要。

然后当这个人为 myClass 实现构造函数时,他或她这样做了:

myClass::myClass() : m_pMySemaphore(0), m_pQueue(0), m_vetorSlotBuffer(0) { }

很明显,这三个变量被构造函数那样对待,因为它们是指针,对吗?但那是什么样的语法呢?我是通过这样做将指针设置为 null 吗?我已经看过一点 C++,但从未发现过类似的东西。

其次,构造函数声明后的“:”是怎么回事?我见过但从未花时间去调查。这像是内部类还是什么?

非常感谢您。 尼尔森·佩雷斯

最佳答案

关于c++ - 奇怪的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604176/

相关文章:

postgresql - 当声明出现语法错误时 declare postgresql

python - 语法错误 : unexpected EOF while parsing (using . 格式())

c++ - 无法理解复制构造函数从何而来

c++ - 将 int 添加到数组,将 LSB 转换为 0 c++

c++ - CMake 无法找到 SDL2_ttf,我尝试以与 SDL2 相同的方式链接它,并且两者都正确安装在 Ubuntu 18.04 上

c++ - 试图通过输入字母退出C++程序

syntax - 为什么拥有 atom 类型(如在 elixir、erlang 中)很有用?

c# - 将参数直接传递给成员的构造函数语法

c++ - 将 make_shared 与 protected 构造函数 + 抽象接口(interface)一起使用

c++ - 为什么我的 char* 无故改变?