为什么我不能在课堂上讲解int

时间:2020-03-04 04:46:31

标签: c++

#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()

1 个答案:

答案 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变量是一个实例变量,可用于该类的所有功能。

相关问题