《深度探索C++对象模型》读书笔记——关于对象(Object Lessons)

本文探讨了C与C++的区别,重点介绍了C++的对象模式,包括静态与非静态成员、虚函数机制和虚基类。同时,文章讨论了继承的多种形态,如单一继承、多重继承和虚继承,以及它们在对象模型中的实现。最后,总结了C++中的对象差异,强调了多态性和指针类型在面向对象编程中的作用。
摘要由CSDN通过智能技术生成

1C与C++的区别:      

 在C语言中,“数据”和“处理数据的操作(函数)”是分开来声明的,其语言本身并没有支持“数据和函数”直接的关联性。程序性:由一组“分布在各个以功能为导向的函数中”的算法所驱动,它们处理的是共同的外部数据。

而C++采用ADT(abstract data tpye)或class hierarchy的数据封装。加上封装后,C++在布局以及存取时间上的主要额外负担是由virtual引起的,包括两个方面:

  • virtual function机制(用以支持一个有效率的“执行期绑定”(runtime binding))
  • virtual base class(用以实现“多次出现在继承体系中的base class,有一个单一而被共享的实体”)。

2、C++对象模式

C++中有两种class data members:static、nostatic,以及三种class member functions:static、nonstatic 和virtual。

  • nonstatic data members被配置于每一个class object之内;
  • static data members则被存在在所有calss object之外;
  • static和 non static function members也被放在所有class object之外;

virtual function则以两个步骤支持:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值