#include <iostream>
class machine
{
public:
machine(int a, int b)
{
int some_int = a;
int model = b;
}
void info()
{
std::cout << model;
}
};
int main()
{
machine BMW(12, 1998);
BMW.info();
}
我不知道为什么在运行C ++代码时会出现错误。我无法cout
中的模型void info()
。
答案 0 :(得分:1)
您声明的模型变量仅在构造方法内部具有范围。因此,它不会在对象的生存期内持续存在。要使info变量成为对象的属性,必须将其保留在该类的所有函数之外。
#include <iostream>
class machine
{
int model;
public:
machine(int a, int b)
{
int some_int = a;
model = b;
}
void info()
{
std::cout << model;
}
};
int main()
{
machine BMW(12, 1998);
BMW.info();
}
这里some_int
仅在构造函数内部可用。但是info
变量是一个实例变量,可用于该类的所有功能。