在声明之前使用成员变量?

时间:2016-07-30 14:54:11

标签: c++

是否可以在声明之前使用类的成员变量? 这是我的代码。

using namespace std;
class Computer

    {
        public:
            Computer()
            {
                processor_speed = 0;
            }
            ~Computer();
            void setspeed (int);
            int getspeed (void);

        private:
            int processor_speed;
    };
    /*Computer::Computer()
    {
        processor_speed = 0;
    } */
    Computer::~Computer()
    {
        cout<<"this is a destructor"<<endl;
    }
    void Computer:: setspeed(int p)
    {
        processor_speed = p;
    }
    int Computer::getspeed(void)
    {
        return processor_speed;
    }

    int main(void)
    {
        Computer obj;
        cout<<"processor speed is "<<obj.getspeed()<<endl;
        obj.setspeed(100);
        cout<<"processor speed is now "<<obj.getspeed()<<endl;
        return 0;
    }

你可以在这里看到我能够在声明之前使用变量processor_speed。 我在这里看到了类似的问题:Do class functions/variables have to be declared before being used? 但我无法理解这段代码的工作原因。 感谢

1 个答案:

答案 0 :(得分:1)

是的,你可以做到。

成员变量在您的类的成员函数的范围内,即使它在第一个使用点之后是文本的。编译器会在几个“通道”中转换您的代码。人们可以将其视为首先获取所有成员变量,然后只翻译成员函数,并且所有声明都已到位。

请注意,翻译单元内的“独立”全局变量和静态变量不允许这样做:声明必须在第一次使用之前,否则会出错。