关于面向对象的一些知识总结,自己了解的

1) 当使用基类指针来调用派生类的回调函数时。shared_from_this()获取只能智能指针获取的是基类的,怎么使其为派生类的呢,那么要用boost的一个动态指针绑定,
2) boost::dynamic_pointer_cast<基类/派生类>(基类/派生类),这个可以互转——称为指针的类型转换
3) 关于基类和派生类的类型转换为题,主要有以下问题:我们可以将基类的指针或引用绑定到派生类上,不存在基类到派生类的转换,主要因为每个派生类都包含基类的一部分,但是一个基类的对象可能是派生类的一部分也可能不是,因此不能从基类向派生类的装换


1) 熟悉了面向对象的一些知识,知道了为什么设立虚析构函数(当用基类调用派生类对象时,派生类的析构函数才能被调用),当然并不所有的类都要定义虚析构函数,只有当该类作为基类时,才调用,虚析构函数中存放着虚函数表,过多使用会增大存储空间。


关于函数重载,覆盖,隐藏的知识点
1) 学习了函数的重载,类中函数的重载,函数覆盖以及函数隐藏
重载:函数名相同,参数类型和参数个数不同,c++会自动匹配到相应的函数


函数覆盖:主要是对面向对象而言的,子类的方法覆盖了基类的方法实现不同的功能。1、派生类覆盖基类函数2、不同范围(分别位于基类和派生类中)3、函数名相同,函数参数也相同3、基类中必须有virtual关键字,派生类不一定需要


隐藏:派生类屏蔽了其同名的基类函数
1、如果派生类的函数和基类的函数同名,但是参数不用,不论有无virtual关键字,基类函数都会被隐藏(注意别和重载混淆)
2、如果派生类和基类函数名相同,参数也相同,但是基类中没有关键字virtual,那么基类函数会被隐藏,(注意别和覆盖混淆与下面对比一下)
3、如果派生类和基类的函数名相同,参数也相同,积累中有关键字virtual,那么基类函数会被覆盖
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值