摘要:
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
小熊酱
阅读(106)
评论(0)
推荐(0)
摘要:
1. 静态变量的初始化线程安全问题 C++的局部static变量,是预先在静态存储区分配了内存,然后在第一次执行到这里的时候进行初始化。 C++11 规定了局部static变量的线程安全,实现上应该是类似std::call_once的实现,我估计基本上就是基于cas的spin-lock,这里当然可以 阅读全文
posted @ 2024-03-20 20:55
小熊酱
阅读(507)
评论(0)
推荐(0)
摘要:
extern有两个作用: 当它与”C”一起连用时,如: extern “C” void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的。 C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称 阅读全文
posted @ 2024-03-20 20:41
小熊酱
阅读(19)
评论(0)
推荐(0)
摘要:
1. 引用的底层原理解析 引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未揭示引用的实现方式。常见错误说法是“引用“自身不是一个变量,甚至编译器可以不为引用分配空间。 引用地址空间存放的是被引用对象的地址。 实际上,引用本身是一个变量,只不过这个变量的定义和使 阅读全文
posted @ 2024-03-20 20:32
小熊酱
阅读(113)
评论(0)
推荐(0)
摘要:
静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放)。静态成员变量是在程序编译时分配空间,而在程序结束时释放空间。 静态成员的定义和声明要加个关键static。静态成员可以通过双冒号来使用,即<类名>::<静态成 阅读全文
posted @ 2024-03-20 15:46
小熊酱
阅读(134)
评论(0)
推荐(0)
摘要:
事实上,我们的重载运算符返回void、返回对象本身、返回对象引用都是可以的,并不是说一定要返回一个引用,只不过在不同的情况下需要不同的返回值。 那么什么情况下要返回对象的引用呢? 原因有两个: 允许进行连续赋值; 防止返回对象(返回对象也可以进行连续赋值(常规的情况,如a = b = c,而不是(a 阅读全文
posted @ 2024-03-20 15:32
小熊酱
阅读(83)
评论(0)
推荐(0)
摘要:
拷贝构造函数的参数为什么必须使用引用类型? 如果拷贝构造函数中的参数不是一个引用,即形如CClass(const CClass c_class),那么就相当于采用了传值的方式(pass-by-value),而传值的方式会调用该类的拷贝构造函数,从而造成无穷递归地调用拷贝构造函数。因此拷贝构造函数的参 阅读全文
posted @ 2024-03-20 15:30
小熊酱
阅读(95)
评论(0)
推荐(0)
摘要:
在C++中,联编是指一个计算机程序的不同部分彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编**。 1. 静态联编 静态联编是指联编工作在编译阶段完成的,这种联编过程是在程序运行之前完成的,又称为早期联编。 要实现静态联编,在编译阶段就必须确定程序中的操作调用( 阅读全文
posted @ 2024-03-20 15:23
小熊酱
阅读(80)
评论(0)
推荐(0)
摘要:
一组函数,函数名相同。函数的参数类型或参数个数不同,那么这一组函数就称作函数重载。 C++ 为什么支持函数重载? C++代码产生函数符号的时候,是由函数名+参数列表组成的; C代码产生函数符号的时候,是由函数名来决定; 函数重载需要注意什么? 一组函数如果是重载函数,一定是处于同一作用域。否则函数调 阅读全文
posted @ 2024-03-20 11:06
小熊酱
阅读(22)
评论(0)
推荐(0)
摘要:
1. 函数模板 假设我们设计一个交换两个整型变量的值的函数,代码如下: // 交换两个整型变量的值的Swap函数: void Swap(int & x,int & y) { int tmp = x; x = y; y = tmp; } 如果是浮点类型的变量的值交换,则替换 int 类型为 doubl 阅读全文
posted @ 2024-03-20 10:30
小熊酱
阅读(44)
评论(0)
推荐(0)
摘要:
1. C风格字符串 在C语言中,字符串表示为字符的数组。字符串中的最后一个字符是空字符(\0’)。 C 和 C++中的 sizeof 操作符可用于获得给定数据类型或变量的大小。例如,sizeof(char) 返回 1,因为 char 的大小是 1 字节。但是,在 C 风格的字符串中,sizeof() 阅读全文
posted @ 2024-03-20 09:59
小熊酱
阅读(230)
评论(0)
推荐(0)
摘要:
两种方式的函数声明如下: void func(const char* s); void func(const std::string& s); 当实参是string时: void funcstr(const std::string& s) { std::cout << s; } void funcc 阅读全文
posted @ 2024-03-20 09:46
小熊酱
阅读(124)
评论(0)
推荐(0)

浙公网安备 33010602011771号