可能重复:
What is this weird colon-member syntax in the constructor?
我试图理解这种代码意味着什么
说我有这个
class OptionStudent: public Student // derived class from Student class
{
public:
explicit OptionStudent(const std::string id = "12345678",
const std::string first = "someone")
: Student(id, first)
{
count_++;
}
}
“某人”之后的那个冒号是什么:< - 这个构造函数被称为或意味着什么? 我知道构造函数可能有点不正确,但我不知道这是什么。我刚刚从教师在板上写的内容中复制了我的笔记,并且不理解它 与类或物体有什么关系记忆的东西?
答案 0 :(得分:1)
是会员initialization list。在这种情况下,它使用id
和first
作为参数调用基类的构造函数。它还可以为您班级的非static
数据成员提供初始值(如果您有的话)。
请注意Student(id, first);
之后的分号是语法错误,需要删除。
答案 1 :(得分:0)
它被称为“初始化列表”。请参阅以下文章"Understanding Initialization Lists in C++"。
基本思想是当你在{
之后输入构造函数的代码时,你应该将所有成员初始化为作为参数或默认值传递的值。
使用初始化列表,您也可以将参数直接传递给基类!这就是您所描述的示例中发生的事情:
id
将first
和default parameter value
都设置为某些值。Student
类。当然,可以将不同的值作为OptionStudent
参数传递,这些值将用于初始化Student
。