我正在阅读 Andrew Koenig 和 Barbara E. Moo 的“Accelerated C++”,我正在阅读关于构造函数(5.1)的章节。
他们在这里提到
我们说过构造函数的存在是为了确保创建对象时其数据成员处于合理状态。一般来说,这个设计目标意味着每个构造函数都应该初始化每个数据成员。给成员一个值的需要对于内置类型的成员来说尤其重要。...
虽然我们只显式地初始化了
midterm
和final
,但其他数据成员被隐式初始化。具体来说,n
由string
默认构造函数homework
初始化,由默认构造函数初始化vector
。
他们正在谈论的课程是
class Student_info {
public:
std::string name() const (return n;}
bool valid() const {return !homework.empty();}
std::istream& read(std::istream&);
double grade() const;
private:
std::string n;
double midterm, final;
std::vector<double> homework;
};
他们的默认构造函数是
Student_info::Student_info(): midterm(0), final(0) {}
我想澄清一下,这意味着需要专门初始化术语之前没有的int
东西?double
std::