C++对象模型的细节,讨论了 data members 的处理。
Inside the C++ Object Model 系列笔记 二 -- The Semantics of constructors
发表于
|
更新于:
字数统计:
3,476
Inside the C++ Object Model 系列笔记 一 -- Object Lessons
发表于
|
更新于:
字数统计:
2,198
多态:统一的接口,不同的实现
C++多态(polymorphism) 表示“以一个 public base class 的指针(或者 reference),寻址出一个 derived class object”
Layout Costs for Adding Encapsulation(封装)
意思是:为了添加封装所需要付出的内存布局花销
第一章 Object Lessons 介绍了 C++如何在背后实现一个对象,内存中的布局以及空间上的关系。
在计算机的原理中,要实现某个机制,我们总能找到很多种实现方式(对比着学习,多思考每种实现方法的利弊),C++的类的实现也不例外,让我们对比以下三种实现方式:
值传递和引用传递
发表于
|
更新于:
字数统计:
477
Java 没有引用传递,本质上都是值传递,只不过传递的值可以是指针(Java 没有指针,所以你也可以理解为对象,其实本质上还是指针)。
1 | public class Solution { |
常量池
发表于
|
更新于:
字数统计:
416
字符串由 char 数组实现,字符串以\0结尾,\0是 ASCII 的第一个字符,用 bit 表示也就是:0000 0000,这可以方便我们找到字符串的结尾。
ASCII 字符由一个字节表示,实际上第一版的 ASCII 字符只用到了 7 个 bit,128 个字符,扩展版的 ASCII 使用了 8 个 bit。
1 | char str[11]; |
为了节省内存,C/C++把常量字符串放到常量池中,当几个指针被赋值了相同的字符串常量时,实际上它们会指向相同的内存地址。但用常量字符串初始化数组,情况却不同。