Boolan C++面向对象高级编程学习第三周

本周c++面向对象编程主要讲的是类于类之间的关系

1、复合(composition)

复合类又称组合类,是一个类里面的数据成员是另一个类的对象,即内嵌其他类的对象作为自己的成员。

这种一般是数据成员类具有该类的大量相同的特性,可以为该类提供接口

这种组合类是先调用成员类的构造函数进行构造,然后在执行自己本身的构造函数,而析构与之相反,先析构自己本身,在执行成员类的析构函数

2、委托(Delegation)

委托类和组合类的区别在于,类的数据成员时一个类的指针,这种相当于类里面只有一个指针的接口,真正的实现了数据(body)和接口(Handle)的分离

3、继承(inheritance)

前面两种只是一个类作为类成员或类成员的指针,为该类提供实现接口,但是继承则是一种is a的概念

继承分为 public,private,protect

这个我们一般用public方式来继承,相当于子类具有除私有父类私有的所有属性

这里子类的构造方式是先调用父类的构造函数,在调用自己的构造函数

析构函数则是先地哦啊用自己的,然后再执行父类的析构函数,    这里需要注意的是父类的析构函数必须是virtual的

 

这里我们类这个重要的继承特性,经常和虚函数这个特性来实现多态性,结合在一起使用

如果父类不是虚函数的话,那么子类可以调用父类的函数,但是不能写相同的函数

这里我们的虚函数有两种形式:

1、普通的虚函数

 virtual void error(const std::String & msg);

这种父类的成员函数最前面加了virtual, 子类可以进行重新定义,或者不定义

 

2、纯虚函数

virtual void draw() const = 0;
这种父类的成员函数=0的方式,表示为纯虚函数,这是为了告诉后面的人要继承这个类,这个函数必须要重新定义

我们最后对委托的相关设计进行了简要的讲解
1、单数据源,多界面显示
2、文件系统
3、树状继承体系

这周的学习,让我对c++面向对象的特性有了更深人的了解,类与类的继承,通过比较类相同的特性来实现类的复用性,大大减少了代码的冗余度,提升了类的延展性
而委托这种特性,体现了类的封装的特性,非常有效的将接口与实现分离开来。

转载于:https://www.cnblogs.com/fighter17/p/7790280.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值