liuqinh2s' blog

Do something cool!


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

Override Overload Overwrite

发表于 2017-11-14 | 更新于: 2025-01-03
字数统计: 1,605

我们都知道有些东西容易混淆,在加上中文翻译得乱七八糟,更加让人困惑。今天我要讲的这三位可就真是绝了。

它们是:Override、Overload、Overwrite。

阅读全文 »

Inside the C++ Object Model 系列笔记 四 -- The Semantics of Function

发表于 2017-10-23 | 更新于: 2025-01-03
字数统计: 1,568

c++支持三种类型的成员函数,分别为 static,nostatic,virtual。每一种调用方式都不尽相同。

阅读全文 »

Inside the C++ Object Model 系列笔记 三 -- The Semantics of Data

发表于 2017-10-21 | 更新于: 2025-01-03
字数统计: 2,076

C++对象模型的细节,讨论了 data members 的处理。

空类在内存中有空间吗

阅读全文 »

Inside the C++ Object Model 系列笔记 二 -- The Semantics of constructors

发表于 2017-10-20 | 更新于: 2025-01-03
字数统计: 3,476

这一章详细的讨论了 constructor 如何工作,讨论构造一个对象的过程以及构造一个对象给程序带来的影响。

区分 trivial 和 notrivial

  1. 只有编译器需要的时候(为什么会需要?后面讲的很清楚),合成操作才是 nontrivial 的, 这样的构造函数才会被真正的合成出来;
  2. 如果编译器不需要,而程序员又没有提供,这时的默认构造函数就是 trivial 的。虽然它在概念上存在,但是编译器实际上根本不会去合成出来,因为他不做任何没有意义的事情,所以当然可以忽略它不去合成。trivial 的函数只存在于概念上,实际上不存在这个函数。
阅读全文 »

Inside the C++ Object Model 系列笔记 一 -- Object Lessons

发表于 2017-10-19 | 更新于: 2025-01-03
字数统计: 2,198

多态:统一的接口,不同的实现

C++多态(polymorphism) 表示“以一个 public base class 的指针(或者 reference),寻址出一个 derived class object”

Layout Costs for Adding Encapsulation(封装)

意思是:为了添加封装所需要付出的内存布局花销

第一章 Object Lessons 介绍了 C++如何在背后实现一个对象,内存中的布局以及空间上的关系。

在计算机的原理中,要实现某个机制,我们总能找到很多种实现方式(对比着学习,多思考每种实现方法的利弊),C++的类的实现也不例外,让我们对比以下三种实现方式:

阅读全文 »
1…151617
liuqinh2s

liuqinh2s

84 日志
2 分类
36 标签
RSS
GitHub Twitter
Links
  • liam
  • jiyanggg
  • 曾小乱 – 在描绘他的生活倒影
© 2025 liuqinh2s | Site words total count: 138.9k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4