C++ static, const, volatile 总结

2021-03-02
阅读 4 分钟
1.9k
我们在定义类的成员函数中,常常有一些成员函数不改变类的数据成员。 也就是说这些函数的 readonly function,而有一些函数要修改类的数据成员的值。 如果在readonly function都加上const进行标识,无疑会提高程序的可读性。 其实还能提高程序的可靠性,已定义成const的成员函数,一旦企图改变数据成员的值,则编译器按...

C++ RTTI 和四种类型转换

2021-03-02
阅读 8 分钟
2.8k
RTTI 是 Run Time Type Information 的缩写,从字面上来理解就是执行时期的类型信息,其重要作用就是动态判别执行时期的类型。

c++虚继承,多继承

2021-02-28
阅读 5 分钟
3.5k
看这一篇文章之前强烈建议先看以下我之前发布的虚指针,虚函数剖析例1: 以下代码输出什么? {代码...} 构造函数从最初始的基类开始构造,各个类的同名变量没有形成覆盖,都是单独的变量。 理解这两个重要的C++特性后解决这个问题就比较轻松了。 下面我们详解这几条输出语句。cout << c.GetData() << endl; ...

5分钟掌握C++中的三种继承方式

2021-02-28
阅读 5 分钟
5.3k
基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见,基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员。
封面图

为什么使用初始化列表会快一些?

2021-02-27
阅读 2 分钟
3.2k
查看下面两段代码: {代码...} {代码...} 为什么2的效率要高?初始化列表的效率要高。首先把数据成员按类型分类内置数据类型,复合类型(指针,引用)用户定义类型(类类型)分情况说明:对于类型1,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的对于类型2,结果上相同,但是性能上存在很大的差别初始化...

虚函数,虚表深度剖析

2021-02-27
阅读 5 分钟
5.3k
面向对象,从单一的类开始说起。 {代码...} 这个类中有两个成员变量,都是int类型,所以这个类在内存中占用多大的内存空间呢?sizeof(A), 8个字节,一个int占用四个字节。下图验证:​这两个数据在内存中是怎样排列的呢?​原来是这样,我们根据debug出来的地址画出a对象在内存的结构图​如果 class A 中包含成员函数呢? A ...

C++怎么判断大小端模式

2021-02-26
阅读 2 分钟
3k
大小端模式:大端模式: 先存放最高有效字节,表现为最高有效字节存储在低地址小端模式: 先存放最低有效字节,表现为最低有效字节存储在低地址小端模式便于机器处理, 大端模式方便人阅读。测试平台的字节序模式: {代码...} 为什么union可以测出当前平台的字节序到底是大端还是小端呢?union: 共用体,也叫联合体,在一个“...

关于面向对象的面试知识点整理(一)

2021-02-25
阅读 7 分钟
1.2k
例2: structure是否可以拥有constructor / destructor及成员函数?如果可以, 那么structure和class还有区别么?

我整理了这篇指针的知识点,想必对你有用

2021-02-24
阅读 6 分钟
1k
指针和引用的区别非空区别: 任何情况下都不能使用指向空值的引用,一个引用必须总是指向某些对象。 指针可以指向空。合法性区别: 引用在使用之前不需要测试合法性,指针应该总是要被测试,防止其为空可修改性区别: 引用在初始化时指定对象,以后不能修改。指针传递动态内存例1: 程序测试后会有什么结果? {代码...} 问题...