#include<iostream> using namespace std; class abc { public: int i; abc(int i){ i = i; } }; main(){ abc m(5); cout<<m.i; }的输出结果
时间: 2023-07-14 13:09:04 浏览: 44
该代码的输出结果将是一个不确定的值,而不是期望的5。这是因为在构造函数中,你试图将参数i赋值给类的成员变量i,但是由于参数名和成员变量名相同,所以赋值操作实际上是将参数i赋值给自身,而不是类的成员变量。因此,类的成员变量i保持不变,仍然是一个未初始化的值。因此,输出结果将是一个未定义的值。为了解决这个问题,你可以使用初始化列表来正确地初始化成员变量。修改构造函数如下:
```cpp
abc(int val) : i(val) {
}
```
这样,参数val会被正确地赋值给类的成员变量i,输出结果将会是期望的5。
相关问题
#include<iostream> using namespace std; class abc { public: int i; abc(int i) { i =i; } }; main() { abc m(5); cout<<m.i;}
你的代码有一个小错误。在构造函数中,你应该使用成员初始化列表来初始化类成员变量,而不是在构造函数体内进行赋值。修正后的代码如下:
```cpp
#include<iostream>
using namespace std;
class abc {
public:
int i;
abc(int i) : i(i) {
}
};
int main() {
abc m(5);
cout << m.i;
return 0;
}
```
这样修改后,输出结果将为 `5`。
#include<iostream> using namespace std; class abc { public: int i; abc(int i){ i = i; } }; main(){ abc m(5); cout<<m.i; }
你的代码中有一个类叫做abc,它有一个公共变量i。类abc有一个构造函数,参数为int型的i。在构造函数中,你试图将参数i赋值给类的成员变量i,但是由于参数名和成员变量名相同,所以会导致赋值不成功。在主函数中,你创建了一个abc类的对象m,并将参数值设为5。最后,输出m对象的成员变量i。根据你的代码逻辑,期望输出结果应该是5。