C++中的类和变量范围

Rav*_*ave 0 c++ scope class

class car {
    int speed; 
    double position;

    public:
       car(int v,double d);
       int getspeed();
};

int car::getspeed() {
return speed;
}

car::car(int s, double x){
   speed=s;
   position=x;
}
Run Code Online (Sandbox Code Playgroud)

即使我为car(int s,v)指定了不同的变量,为什么它可以工作?我虽然它应该给我一个编译时错误?

这段代码:它使用哪种var?

class car {
    int speed; 
    double position;

    public:
       car(int speed,double time);
       int getspeed();
};

int car::getspeed() {
   return speed;
}

car::car(int speed, double position){
   speed=speed;
   position=position;
}
Run Code Online (Sandbox Code Playgroud)

我认为可能会使用全局变量,或者它是您无法确定的事情

use*_*719 7

car::car(int speed, double position){
   speed=speed;
   position=position;
}
Run Code Online (Sandbox Code Playgroud)

在这个函数定义中,它对类成员car :: speed和car :: position没有任何作用,因为你在函数参数列表中声明了本地int speed和double position,它们隐藏了类成员变量.要正确地执行此操作,您需要明确说出:

car::car(int speed, double position){
   this->speed=speed;
   this->position=position;
}
Run Code Online (Sandbox Code Playgroud)