1

以下 C++ 语法是什么意思?

my_s_module::my_s_module(mylib::cont const& c)
    :mylib::s_module{c}
{
    // Some content;
}

在我看来,这就像继承。但我知道对于继承,语法如下:

class Child: public Parent
{
}

在第一个例子中,我们有这样的东西:

Child(some_type const& x): public Parent{x}
{
}

所以,我不知道这是什么意思。有人可以解释一下这个语法吗?

添加

我可能需要补充一点,在这段代码的注释中写着它是“模块的构造函数”。但是这是什么意思?我知道类的构造函数是什么意思,但什么是模块的构造函数?

4

3 回答 3

0

根据您的描述,它只是构造函数中的初始化列表。

在冒号之后,您指定类成员和它们的初始值。

例如: http: //www.learncpp.com/cpp-tutorial/101-constructor-initialization-lists/

于 2013-08-12T12:32:20.973 回答
0

它是类的构造函数中的常规初始化列表my_s_module,它继承自s_module命名空间(或类)中的mylib

代码应如下所示:

namespace mylib
{ 
    class cont
    {
       // ...
    };

    class s_module
    {
    public:
        s_module(cont const&);
        // ...
    };
}

class my_s_module : public mylib::s_module
{
public:
    my_s_module(mylib::cont const &);
};

// Constructor implementation
my_s_module::my_s_module(mylib::cont const& c)
    : mylib::s_module{c}  // Initialize the base class. The {} around the argument is a C++11 feature.
{
    // Some content;
}
于 2013-08-12T12:35:53.860 回答
0

这是在类my_s_module定义之外定义的类的构造函数。s_module此构造函数将嵌套类的成员初始化mylibc,这是构造函数的参数。

于 2013-08-12T12:31:08.143 回答