以下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
我可能需要补充一点,在这段代码的注释中写道它是“模块的构造函数”。但是这是什么意思?我知道类的构造函数是什么意思,但什么是模块的构造函数?
答案 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;
}