作为一个C++的初学者,我一直在尝试构造函数以获得对类的进一步理解。 这是我制作的一个名为“Student”的类,它带有一个构造函数,该函数使用类的一个变量,即string Name。 我在main函数中创建了类的一个对象,标题为'bill',并在main函数中定义了它的'name'变量1。
因此,当我构建和运行这个程序时,它将打印在构造函数中编写的短语,但我为'name'变量输入的值除外。 控制台输出。
这是为什么? 有什么可以做的吗? 这是我应该避免的事情吗?
构造函数在对象初始化时执行。 在这种情况下,初始化是在变量声明上完成的,这是在赋值之前完成的。
要解决这个问题,您应该在构造函数中添加一个参数来获取要打印的名称,并使用该参数来初始化name
。
class Student {
public:
string name;
string major;
double gpa;
Student(const string& n = "") : name(n) {
coust << "Hello, my name is " << name << endl;
}
};