这段代码来自" Sams Teach Yourself C ++"。它可能是一些简单的东西,但我很难解决这个问题。如果我不使用getSpeed()方法,我会得到相同的输出。所以我需要这个吗?如果没有,为什么这本书会使用它?
#include <iostream>
class Tricycle
{
public :
int getSpeed();
void setSpeed(int speed);
void pedal();
void brake();
private :
int speed;
};
int Tricycle::getSpeed() //<-- Why do I need this method
{
return speed;
}
void Tricycle::setSpeed(int newSpeed)
{
if (newSpeed >= 0)
{
speed = newSpeed;
}
}
void Tricycle::pedal()
{
setSpeed(speed + 1);
std::cout << "\nPedaling; tricycle speed " << speed << " mph\n";
}
void Tricycle::brake()
{
setSpeed(speed - 1);
std::cout << "\nBraking ; tricycle speed " << speed << " mph\n";
}
int main()
{
Tricycle wichita;
wichita.setSpeed(0);
wichita.pedal();
wichita.pedal();
wichita.brake();
wichita.brake();
wichita.brake();
return 0;
}
答案 0 :(得分:0)
此方法从速度返回值。
因此,如果您将setSpeed的值设置为0,则将Speed Value设置为新值。声明为私有int变量。
例如
int main()
{
Tricycle wichita;
wichita.setSpeed(10);
int mySpeed= wichita.getSpeed();
}
mySpeed的价值现在是10。
答案 1 :(得分:0)
由于Speed是一个私有变量,因此无法在类范围之外检索/设置其值。所以这里我们使用了setSpeed和getSpeed公共函数,通过它我们可以在类范围之外检索/设置Speed到三轮车对象。
例如,
Tricycle myTricycle = new Tricycle();
//设定三轮车的使用速度,
myTricycle.setSpeed(100);
//用于反击三轮车对象使用的速度,
myTricycle.getSpeed(); // returns 100;
答案 2 :(得分:0)
因为您无法直接从private
功能或其他位置访问main()
成员。但是您可以使用public
函数来访问任何类的对象的private
元素。尽管如此,您无法访问这些私有元素。在您的代码中,speed
是private
成员,为了获得此值,我们正在使用public
函数getSpeed
。