【发布时间】:2022-01-19 10:04:04
【问题描述】:
我是 C++ 的新手,在尝试学习构造函数时遇到了一个不寻常的错误。这里我试图让 x = 5 和 y = 6,然后让程序将它们打印到屏幕上。
这是我的程序 ->
#include <iostream>
using namespace std;
class class1 {
public:
int x;
int y;
class1(int x, int y) {
x = x;
y = y;
}
}
int main() {
class1 class1obj(5, 6);
cout << class1obj.x << endl << class1obj.y;
}
这是我运行 3 次后的输出 ->
第一次运行
172691493
1
第二次运行
126890021
1
第三次运行
226783269
1
从输出中可以看出,y 似乎是一个常数“1”,而 x 似乎只是通过随机数不断变化。 这个程序相当简单,所以我不知道这里出了什么问题。
还应该注意的是,我在 mac OS big sur 上,我使用 g++ -std=c++11 作为我的编译器,因为 g++ 似乎不适用于我的所有程序(是的,我已经尝试过 g++它自己的这个特定程序,它仍然不起作用)。
任何帮助将不胜感激!
【问题讨论】:
-
完全删除构造函数(在这种情况下您将使用聚合初始化)或重命名构造函数或成员的参数。您只是在修改参数并使您的成员未初始化。
-
想想构造函数中的
x = x赋值。在构造函数的范围内,变量x是什么?它只能是一个的东西。
标签: c++ oop constructor