0

可能重复:
构造函数中这个奇怪的冒号成员语法是什么?

我试图理解这种代码的含义

说我有这个

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_++;
        }
}

“某人”后面的冒号是什么):<-- 对这个构造函数来说,这部分被调用或意味着什么?
我知道构造函数可能有点不正确,但我不知道这叫什么。我只是把老师写在黑板上的笔记抄下来,看不懂。
与记住某些东西的类或对象有关吗?

4

2 回答 2

1

它是成员初始化列表id在这种情况下,它使用和first作为参数调用基类的构造函数。它还可以为static您的类的非数据成员(如果有的话)提供初始值。

注意后面的分号Student(id, first);是语法错误,需要去掉。

于 2012-11-26T12:21:46.610 回答
0

它被称为“初始化列表”。请参阅以下文章“了解 C++ 中的初始化列表”

基本思想是,当您输入构造函数的代码后,{您应该将所有成员初始化为作为参数或默认值传递的值。

使用初始化列表,您也可以直接将参数传递给基类!这就是您描述的示例中发生的情况:

  • 首先,两者idfirst都使用 设置为一些值default parameter value
  • 其次,这些值用于初始化基Student类。

当然,可以将不同的值作为OptionStudent参数传递,这些值将用于初始化Student.

于 2012-11-26T12:33:15.750 回答