深度探索c++对象模型
文章平均质量分 87
《深度探索c++对象模型》笔记。感谢Stanley B.Lippman巨佬,感谢侯捷老师。
StudyWinter
持续学习
展开
-
《深度探索c++对象模型》笔记
《深度探索c++对象模型》第一章笔记:《深度探索c++对象模型》第一章笔记_StudyWinter的博客-CSDN博客《深度探索c++对象模型》第二章笔记:《深度探索c++对象模型》第二章笔记_StudyWinter的博客-CSDN博客《深度探索c++对象模型》第三章笔记:《深度探索c++对象模型》第三章笔记_StudyWinter的博客-CSDN博客《深度探索c++对象模型》第四章笔记:《深度探索c++对象模型》第四章笔记_StudyWinter的博客-CSDN博客《深度探索c++对象模型》第五章笔记:《原创 2023-08-09 10:02:03 · 216 阅读 · 0 评论 -
《深度探索c++对象模型》第七章笔记
这一章讨论三个著名的C++语言扩充性质,它们都会影响CH+对象。它们分别是 template、exception handling (EH)和runtime type identification (RTTI)模版、异常、通过运行时类型识别。原创 2023-08-08 10:50:18 · 282 阅读 · 0 评论 -
《深度探索c++对象模型》第六章笔记
有这样一个简单的案例:其中,xx和yy的定义为:class Y定义为:class X定义为:Y类重载了==运算符,形参是Y,在本例中笔记的是yy == xx.getValue();在X类中,有一个conversion运算符,将X对象转换为Y对象,这使得案例成立。这里会产生一系列的临时变量。(1)产生一个临时变量Class X object,放置getValue()的返回值(2)产生一个临时变量class Y object,放置operator Y()的返回值(3)产生一个原创 2023-08-07 11:12:30 · 268 阅读 · 0 评论 -
《深度探索c++对象模型》第五章笔记
《深度探索c++对象模型》第五章笔记原创 2023-08-02 10:35:21 · 230 阅读 · 1 评论 -
《深度探索c++对象模型》第四章笔记
这样做时,会发生什么事?答案是:不知道!C++支持三种类型的 member functions,每一种类型被调用的方式都不相同。其间差异正是下一节的主题。不过,我们虽然不能够确定normalize()和magnitude()两函数是否为virtual或nonvirtual,但可以确定它一定不是 static,原因有二:(1)它直接存取nonstatic数据;(2)它被声明为const。是的,static mermber functions不可能做到这两点。原创 2023-07-27 12:43:37 · 250 阅读 · 0 评论 -
《深度探索c++对象模型》第三章笔记
每一个nonstatic data member的偏移量( offset)在编译时期即可获知,甚至如果member属于一个base class subobject(派生自单一或多重继承串链)也是一样.因此,存取一个nonstatic data member,其效率和存取一个C struct member或一个nonderived class的member是一样的。下一节我会验证“继承对于member布局的影响”。多重继承的一个语意上的副作用就是,它必须支持某种形式的“sharedsubobject继承”。原创 2023-07-26 10:57:02 · 298 阅读 · 0 评论 -
《深度探索c++对象模型》第二章笔记
有四种情况,会导致“编译器必须为未声明constructor 之 classes合成--个default constructor”.C++ Stardand 把那些合成物称为implicit nontrivial defaultconstructors。原创 2023-07-26 10:53:55 · 568 阅读 · 0 评论 -
《深度探索c++对象模型》第一章笔记
这里所说的 base class table被产生出来时,表格中的每一个slot内含一个相关的 base class地址,这很像virtual table 内含每一个virtual function 的地址一样.每一个class object内含一个bptr,它会被初始化,指向其base class table。其实还是C++对象模型,但是这里更具体的说明了虚函数表的第0个位置指向X的type_info object,虚函数表的第1个位置指向虚析构函数,虚函数表的第2个位置指向X::foo()函数。原创 2023-07-10 18:25:41 · 669 阅读 · 0 评论