c++ 抽象 基于面向对象

本文介绍了如何使用C++进行面向对象编程,通过抽象基站的属性和行为来构建类。基站的属性包括唯一ID、名字、状态值和温度。C++的访问修饰符如private、protected和public用于控制成员的访问权限。面向对象的核心思想是使用者仅关注结果,而不关心实现细节,例如通过isNormal方法直接获取基站是否正常,而不需要了解内部实现。
摘要由CSDN通过智能技术生成

事物

假设厂区有很多基站,我们需要实时了解基站的运行情况,那我们怎么去了解基站呢?一种是靠人力,每天巡检,断电开箱(效率太低)。第二种情况通过安装各种传感器,自动上报数据。对于第二种情况我们怎么通过软件形式构造一个虚拟的基站呢?此时我们就需要抽象,把我们需要了解的信息归为类,我们需要了解什么信息呢?厂区有很多基站,所以我们需要区分基站,所以我们需要一个号码,就像身份证号码一样,唯一的。我们也需要给基站去个名字,既然要了解基站的情况,那我们就一个状态值,表示当前是异常还是运行,基站温度也是我们需要了解的。总结起来就是唯一ID,名字,状态值,温度。c++中通过类表示一类事物的属性,以及关联的方法。关联的方法只是方便提供给自己或着使用者调用,让使用者少管闲事,只需获得东西就行,不用关心怎么获得。毕竟这是类内部的事情。

c++中的类

c++ 中的关键字private,protected,public限制属性或者方法的访问性,private,protected对外不开放,public对外开发,使用者可以访问这些属性或者接口。一会我会解释使用者或者被使用者。

enum  State
{
    STATE_ON,
    STATE_OFF,
    STATE_EXCEPTION,
    STATE_SHORTCUT,
};
class   BaseStation
{
public:
explicit BaseStation(std::string sn, std::string name, State state, double tempre)
{
	this->sn = sn;
	this->name = name;
	this->state = state;
	this->temperature = tempre;
}
~BaseStation(){}
publicbool   isNormal()
{
    return state == STATE_ON?true:false;
}
private:
	std::string  sn;
	std::string  name;
	State        state;
	double       temperature;
};

int main()
{
    BaseStation bs("1234567", "基站1", STATE_ON, 33);
    while(true)
    {
        if (!bs.isNormal()) break;
        std::this_thread::sleep_for(std::chrono::milliseconds(1000));//睡眠1秒
    }
    return 0;
}

在上面代码中我们创建了bs对象,并赋予了属性的值。现在我们解释为什么基于面向对象,在这里main函数是使用者,因为在main函数中创建的bs对象,所以bs对象是被使用者,使用者要想知道该基站是否正常,它只需要调用isNormal就行,在没有出现面向对象之前,如果我们想知道设备是否正常我们要先判断state,然后再确定基站是否正常,但是现在我只需要调用isNormal判断就行,我根本不想关注你里面有啥东西,这就是基于面向对象。使用者只想知道结果,你怎么得到的结果不关心。鉴于篇幅问题,这里给的例子很简单,但是讲的很明白。我以前也是这么理解的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯鲁吉亚不信

你的鼓励将是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值