- 博客(9)
- 收藏
- 关注
原创 C++对象模型学习笔记7 站在对象模型的尖端
Template{P280} template甚至被使用于一项所谓的template metaprograms技术:class expression templates将在编译时期而非执行期被评估,因而带来重要的效率提升。(模板元编程 wow...){P284} 只有在member functions被使用的时候,C++标准才要求它们被实例化,之所以由使用者来主导“实例化”规则,主要有两个原...
2018-11-11 17:45:27
298
原创 C++对象模型学习笔记6 执行期 语意学
开篇{P239} X xx; Y yy;{ if (yy == xx.getValue()) …}其实被扩展成:{ X temp1 = xx.getValue(); Y temp2 = temp1.operator Y(); int temp3 = yy.operator==(temp2); If (temp3) … temp2....
2018-11-11 10:53:32
243
原创 C++对象模型学习笔记4 Function语意学
各种调用方式{P140} C++支持三种类型的member functions: static, non-static和virtual。non-static member function{P141} C++的设计准则之一便是: non-static member function至少必须和一般的non-member function有着相同的效率。转换步骤为:改写原型(签名), ...
2018-11-07 21:30:26
173
原创 C++对象模型学习笔记3 Data语意学
Data 语意学{P83} 若干类的继承关系如下: class X{}; class Y : public virtual X{}; class Z : public virtual X{}; class A: public Y, public Z{};class X, 一个empty class,占用1 byt...
2018-10-30 00:13:04
189
原创 C++对象模型学习笔记2 构造函数语意学
2. 构造函数语意学Schwarz ErrorJerry Schwarz,iostream函数库建构师,曾为了让cin能够求得一个真假值,定义了conversion运算符operator int()。这样用户写出:if (cin)语句,就会很方便。但当用户想要写cout << intVal时,不小心写成了cin << intVal; 结果编译器没有报错,哈哈
2018-10-27 23:20:25
246
原创 C++对象模型学习笔记1 关于对象
快速记录一些要点:1. 关于对象{P6} 讲到C++相对于C多了封装,但这个封装大多数情况下并没有带来额外的布局成本,即并未带来任何空间或执行期的不良后果。C++在布局和存取时间上主要的额外负担是由virtual引起。 此外一些多重继承下也会发生一些负担。比如说:每个对象要有虚表指针,需要有thunk切换等等。{P9-P10} 一些对象模型历史和比较简单对象模型:每个数据和函数都...
2018-10-22 23:53:57
106
原创 C/C++阅读书籍列表
对C++一直不太懂,最近项目中需要接触大量的C++代码,迫于生计打算好好学习下C++,之前看过C++ primer,有点淡忘了。搜了一把,网友们推荐了一些书,根据豆瓣评论,罗列书单如下:C++语言的设计和演化 Bjarne Stroustrup 9.2深度探索C++对象模型 Stanley Lippman 8.9C++ Primer version 4.0 Stanley Lippman ...
2018-10-21 19:34:52
213
原创 开篇
开篇终于开了自己的第一个技术博客,其实老早就有开自己技术博客的想法,因为好记性不如烂笔头,写出来也可以跟网友们交流记录,对于自己理解不对或者没考虑全的地方,也能够得到指正。但一直担心自己能否坚持的下来,2018年又要过去的,最近有强烈的希望记录一些东西的想法,于是下定决心开一个。本博客将主要记录日常的计算机相关知识的学习点滴,集中在C++知识,数据结构和算法,日常工具使用等方面。希望能坚持写下...
2018-10-21 17:25:12
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人