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)
我认为可能会使用全局变量,或者它是您无法确定的事情
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)