#include <iostream> #include <string> using namespace std; class A{ int a; public: A(int i){ a = i; } void assign(int i){ a = i; } int return_value(){ return a; } }; int main() { A obj; obj.assign(5); cout<<obj.return_value(); }
时间: 2024-01-14 15:03:02 浏览: 66
#include <iostream>
这段代码会出现错误,因为在定义类A时,定义了一个带有一个参数的构造函数A(int),但是在主函数中创建A类的对象时,没有传递参数,因此编译器会报错。
正确的做法是,在主函数中创建A类的对象时,传递一个参数,如下所示:
```
#include <iostream>
#include <string>
using namespace std;
class A{
private:
int a;
public:
A(int i){
a = i;
}
void assign(int i){
a = i;
}
int return_value(){
return a;
}
};
int main() {
A obj(0); // 创建A类对象时传递参数
obj.assign(5);
cout << obj.return_value();
return 0;
}
```
在上述代码中,创建A类对象时传递参数0,可以在初始化时将a的值设为0。然后调用assign函数将a的值设为5,并使用return_value函数输出a的值。最后,主函数返回0表示程序运行成功。
阅读全文