奇怪的"类class :: method():stuff"语法C++

da_*_*u21 0 c++ syntax constructor pimpl-idiom

在阅读pImpl成语的一些内容时,我发现了类似这样的东西:

MyClass::MyClass() : pimpl_( new MyClassImp() )

第一:这是什么意思?
第二:语法是什么?
很抱歉这样的菜鸟.

Jam*_*lis 8

这定义了构造函数MyClass.

语法是带有初始化列表的构造函数定义的语法(我假设在此之后有一组括号来定义构造函数的主体).

的构件pimpl_MyClass被初始化为指向类型的新对象MyClassImp.它几乎与以下内容相同:

MyClass::MyClass()
{
    pimpl_ = new MyClassImp();
}
Run Code Online (Sandbox Code Playgroud)

但是,最好使用初始化列表尽可能初始化类成员; 请参阅上面链接的C++ FAQ Lite条目.