标签:图片 存在 vat The inpu 实例 现在 void const
类是一种新的数据类型,类似于数据结构,只是它拥有数据结构所没有的部分——“成员函数”,正是因为它所拥有的成员函数这一特性,使得它能隐藏“数据结构”(类)中的数据,不被用户所知道。通过类中的成员函数,使得类的实现与连接都是通过成员函数来进行实现的。接下来我们通过一个实例来对这一概念进行论述:
实例:节流阀类:throttle
对于节流阀,想必大家都比较熟悉,就通过移动控制杆来进行控制液体的流入流出,即为控制流量,所以控制杆所在的位置与通过节流阀的流量便存在一个相关性。通过控制控制杆的位置从而便可以控制通过节流阀的流量,假设节流阀有10个位置,当在位置10时便是流量最大时,0时便是流量为零时。所以根据节流阀的特点,我们可以列出这样一些特点:
1、当前的位置:position
2、当前的流量:flow(根据相关性,使用最大流量与当前流量的比来代表,即最大流量的位置与当前位置的比)
3、节流阀当前是否关闭:is_no
4、移动控制杆到什么位置:shift
5、将节流阀进行关闭 shut_off
所以我们便可以建立一个throttle类了:
class throttle{
public:
void shut_off();//初始化当前位置,对节流阀进行关闭操作
void shift(int amount);//输入节流阀的移动位置
double flow() const;//输出最大位置与当前位置的比值
bool is_no() const;//判断是否开启状态
private:
int position;
};
从而根据提供的成员函数,我们进行对成员函数的具体实现进行编写:
void throttle::shut_off(){
position=0;
}
void throttle::shift(int amount){
position+=amount;
if(position<0){
position=0;
}else if(position>10){
position=10;
}
}
double throttle::flow()const {
return position/10.0;
}
bool throttle::is_no()const{
return (flow()>0);
}
这是我们便可以进行具体情况具体分析使用这个类了;假如有一个游泳池,现在需要通过这个节流阀进行放水,在放水的过程中每次一小时节流阀的位置变化一位,这时要求求出给定一个位置量,输出它的每小时的流量大小?
int main()
{
throttle sample;
int user_input;
cout<<"I have a throttle with 10 position."<<endl;
cout<<"Where would you like to set the throttle?"<<endl;
cout<<"Please type a number 0 to 10.";
cin>>user_input;
sample.shut_off();
sample.shift(user_input);
while(sample.is_no()){
cout<<"The flow is now "<<sample.flow()<<endl;
sample.shift(-1);
}
cout<<"The flow is now off"<<endl;
return EXIT_SUCCESS;
}
结果如下:
标签:图片 存在 vat The inpu 实例 现在 void const
原文地址:https://www.cnblogs.com/Justina/p/11230987.html