上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 1. 背景 RTTI的英文全称是"Runtime Type Identification",中文称为"运行时类型识别",它指的是程序在运行的时候才确定需要用到的对象是什么类型的。用于在运行时(而不是编译时)获取有关对象的信息。 在C++中,由于存在多态行为,基类指针或者引用指向一个派生类,而其指向的 阅读全文
posted @ 2024-03-21 11:26 小熊酱 阅读(615) 评论(0) 推荐(0)
摘要: 1. 类的大小与什么有关系? 与类大小有关的因素:普通成员变量,虚函数,继承(单一继承,多重继承,重复继承,虚拟继承)。 与类大小无关的因素:静态成员变量,静态成员函数及普通成员函数。 2. 空类 空类即什么都没有的类,按上面的说法,照理说大小应该是0,但是,空类的大小为1,因为空类可以实例化,实例 阅读全文
posted @ 2024-03-21 10:54 小熊酱 阅读(168) 评论(0) 推荐(0)
摘要: 1. 多重继承 多重继承示例代码如下: class Base1 { public: void f0() {} virtual void f1() {} int a; }; class Base2 { public: virtual void f2() {} int b; }; class Deriv 阅读全文
posted @ 2024-03-20 22:09 小熊酱 阅读(129) 评论(0) 推荐(0)
摘要: 1. 静态变量的初始化线程安全问题 C++的局部static变量,是预先在静态存储区分配了内存,然后在第一次执行到这里的时候进行初始化。 C++11 规定了局部static变量的线程安全,实现上应该是类似std::call_once的实现,我估计基本上就是基于cas的spin-lock,这里当然可以 阅读全文
posted @ 2024-03-20 20:55 小熊酱 阅读(542) 评论(0) 推荐(0)
摘要: extern有两个作用: 当它与”C”一起连用时,如: extern “C” void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的。 C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称 阅读全文
posted @ 2024-03-20 20:41 小熊酱 阅读(21) 评论(0) 推荐(0)
摘要: 1. 引用的底层原理解析 引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未揭示引用的实现方式。常见错误说法是“引用“自身不是一个变量,甚至编译器可以不为引用分配空间。 引用地址空间存放的是被引用对象的地址。 实际上,引用本身是一个变量,只不过这个变量的定义和使 阅读全文
posted @ 2024-03-20 20:32 小熊酱 阅读(145) 评论(0) 推荐(0)
摘要: 静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放)。静态成员变量是在程序编译时分配空间,而在程序结束时释放空间。 静态成员的定义和声明要加个关键static。静态成员可以通过双冒号来使用,即<类名>::<静态成 阅读全文
posted @ 2024-03-20 15:46 小熊酱 阅读(141) 评论(0) 推荐(0)
摘要: 事实上,我们的重载运算符返回void、返回对象本身、返回对象引用都是可以的,并不是说一定要返回一个引用,只不过在不同的情况下需要不同的返回值。 那么什么情况下要返回对象的引用呢? 原因有两个: 允许进行连续赋值; 防止返回对象(返回对象也可以进行连续赋值(常规的情况,如a = b = c,而不是(a 阅读全文
posted @ 2024-03-20 15:32 小熊酱 阅读(99) 评论(0) 推荐(0)
摘要: 拷贝构造函数的参数为什么必须使用引用类型? 如果拷贝构造函数中的参数不是一个引用,即形如CClass(const CClass c_class),那么就相当于采用了传值的方式(pass-by-value),而传值的方式会调用该类的拷贝构造函数,从而造成无穷递归地调用拷贝构造函数。因此拷贝构造函数的参 阅读全文
posted @ 2024-03-20 15:30 小熊酱 阅读(112) 评论(0) 推荐(0)
摘要: 一组函数,函数名相同。函数的参数类型或参数个数不同,那么这一组函数就称作函数重载。 C++ 为什么支持函数重载? C++代码产生函数符号的时候,是由函数名+参数列表组成的; C代码产生函数符号的时候,是由函数名来决定; 函数重载需要注意什么? 一组函数如果是重载函数,一定是处于同一作用域。否则函数调 阅读全文
posted @ 2024-03-20 11:06 小熊酱 阅读(43) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 下一页