C++作为自下而上的软件工程师必经之路

    我是自下而上的软件渣渣,从51单片机,到stm32,在到arm或mips。软件从裸奔,到ucos,再到linux。像我们这种渣渣,举步维艰,一步一步迈入工地。从玩泥巴,到玩水泥。现在我继续我的步伐,学c++,来进入面向对象的世界。

    这篇博客的目的:1)做嵌入式的自下而上的渣渣们,一定要开始学c++了,进入到面向对象的世界。

                                 2)记录一下我觉得比较经典的点。

 

    c++中,多态是一个比较爽的特性,它通过继承来实现,定义接口层的类(基类),然后在应用层上使用接口类指针(基类),调用虚函数,当这个指针是子类(实现层,因为实现层可能千差万别),就调用了子类的函数。这样就实现了定义层和实现层可以保持不变,一千个子类(继承定义层的基类),就有一千种表现形式。这让人感觉到magic。

    class并不仅仅为了让人感到magic,或者是统一个接口(入口)(因为传统的c也能实现这种性质)。你要想象一个问题,生活中的每一个东西,能够有机的组织起来,有规律的运动,没有一个人能提前设计好这一切,上帝都不能。比如一个杯子,这个杯子可能放在座子上,茶几上,地上,厕所里,水下,微波炉里;可能装冷水,温水,热奶,可乐;杯子的尺寸,颜色,材料,质量;等等一切,如果我们把杯子的属性抽象好,那么这个抽取就是一个杯子,她就是一个对象。当你生产一个这样的杯子(实例化一个对象instance),她将像你的生活中的一个杯子一样,那么自然,那么放松,那么有规律。因为你从来不会担心你手中的杯子出现bug。

    《头号玩家》,人们在虚拟现实中,can do everything you want。只要你可以抽象好每一个东西,包括重力场,磁场,质量,等等一切东西。你可以创造世界。

    c不能创造世界,但是c++可以(面向对象可以)。

问题 a)基类的析构函数为什么喜欢搞成虚函数?

   子类的指针强转成基类指针,然后赋值给赋值基类,delete 这个基类指针时,为了确保去调用子类中的析构函数,所以要将基类中的析构函数搞成虚函数,其实和普通的虚成员函数是一样的。只是这个是析构函数。 

问题 b)友元可以继承吗?(待验证,答案是网友的)

    友元是不可继承的,父类和子类最怎么亲密也是两个类。老子的朋友是老子的,儿子的朋友是儿子的。
    但是可以通过让子类重载父类的virtual方法,这样就可以通过访问子类的函数了,但只能是重载父类的函数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值