它是函数或其他东西的继承吗?

时间:2013-08-12 12:10:20

标签: c++ oop inheritance syntax

以下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}
{
}

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

ADDED

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

在冒号后,您可以为它们指定类成员和初始值。

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

答案 2 :(得分: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;
}