C++
文章平均质量分 79
hdbb4ever
这个作者很懒,什么都没留下…
展开
-
C++对象模型学习笔记1 关于对象
快速记录一些要点:1. 关于对象{P6} 讲到C++相对于C多了封装,但这个封装大多数情况下并没有带来额外的布局成本,即并未带来任何空间或执行期的不良后果。C++在布局和存取时间上主要的额外负担是由virtual引起。 此外一些多重继承下也会发生一些负担。比如说:每个对象要有虚表指针,需要有thunk切换等等。{P9-P10} 一些对象模型历史和比较简单对象模型:每个数据和函数都...原创 2018-10-22 23:53:57 · 79 阅读 · 0 评论 -
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 · 162 阅读 · 0 评论 -
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 · 147 阅读 · 0 评论 -
C++对象模型学习笔记2 构造函数语意学
2. 构造函数语意学Schwarz ErrorJerry Schwarz,iostream函数库建构师,曾为了让cin能够求得一个真假值,定义了conversion运算符operator int()。这样用户写出:if (cin)语句,就会很方便。但当用户想要写cout << intVal时,不小心写成了cin << intVal; 结果编译器没有报错,哈哈原创 2018-10-27 23:20:25 · 187 阅读 · 0 评论 -
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 · 128 阅读 · 0 评论 -
C++对象模型学习笔记5 构造/析构/拷贝 语意学
啊原创 2018-11-08 23:54:15 · 146 阅读 · 0 评论 -
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 · 196 阅读 · 0 评论 -
C++对象模型学习笔记7 站在对象模型的尖端
Template{P280} template甚至被使用于一项所谓的template metaprograms技术:class expression templates将在编译时期而非执行期被评估,因而带来重要的效率提升。(模板元编程 wow...){P284} 只有在member functions被使用的时候,C++标准才要求它们被实例化,之所以由使用者来主导“实例化”规则,主要有两个原...原创 2018-11-11 17:45:27 · 252 阅读 · 0 评论