【发布时间】:2018-10-15 20:19:46
【问题描述】:
所以我在 Point 类上创建了一个构造函数。
类
class Point {
public:
Point(); //declare default constructor
double x;
double y;
};
构造函数
Point::Point() {
x=0.0;
y=0.0;
}
现在,当我在 main 中打印 x 和 y 的默认值时,它们显示为 0 和 0,这是我所期望的。
不过,为了好玩,将构造函数的声明更改为以下 -
新构造函数声明
Point::Point() {
double x=0.0;
double y=0.0;
}
现在,当我调用同一个构造函数时,我得到的 x 和 y 的值分别为 2.16703e-314 和 6.95313e-310。现在,我知道构造函数的用途了。我想知道的是,当我将变量类型添加到 x 和 y 时,当我声明它开始表现得这样的构造函数时会发生什么?希望问题很清楚。很高兴澄清是否不是。
【问题讨论】:
-
您的
double x现在是一个局部变量,被设置为0.0,而不是成员变量,这意味着成员变量 (this->x) 从未显式初始化。 -
您的第二个示例仅初始化局部变量而不是成员 variaböls。
标签: c++ class constructor