Essential c++第五章笔记

本文详细探讨了C++中的面向对象特性,包括构造与析构顺序、多态的理解、静态成员函数与虚函数的关系、派生类与基类成员的隐藏与访问、引用初始化、虚函数的使用规范以及类型信息与强制类型转换。同时,讲解了动态类型转换以及内存管理和对象生命周期在多态环境下的影响。
摘要由CSDN通过智能技术生成

①派生类对象定义出后会先执行父类构造,然后执行子类构造,摧毁时则相反

②简单的多态理解:同一个对象有不同的属性

③静态成员函数无法被声明为虚函数

④当一个成员函数被声明为虚函数后,派生类同名函数都自动成为虚函数.所以在子类声明该虚函数时,可以加也可以不加virtual关键字,加上只是更清晰,在类本身之外对虚函数定义时,不需要指明关键字virtual

⑤每当派生类有某个成员与基类成员同名时,便会遮蔽住基类那份成员,在接下来的调用该成员就不是调用的基类成员,如果还想使用基类那份成员就必须使用::运算符

⑥成员数据如果是个引用就必须在构造函数的成员初始化列表初始化

⑦如果派生类继承了纯虚函数那么这个派生类也会变成抽象类,当决定重写虚函数时,派生类所提供的新定义必须完全符合基类声明的函数原型,但返回值必须完全吻合这一规则例外,当基类的虚拟函数返回某个基类形式(通常是指针或引用)时派生类中同名函数便可以返回该基类所派生出的类型

⑧在基类的构造中,派生类的虚函数一定不会被调用,析构函数也是如此

⑨当我们对基类声明一个实际对象,同时也就配置出足以容纳该对象的内存,如果稍后传入的时派生对象,则没有内存放置派生类中的各个成员

⑩typeid运算符(必须包含typeinfo头文件)该运算符会返回type_info对象,其中储存与类型相关的种种信息,只能查询多态化的类指针和类引用.例:typeid(*this)

①①static_cast<类型> (对象)可将对象类型强制转换
dynamic_cast<类型> (对象)用于将父类对象的指针or引用转换成子类的指针or引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值