C++IE
文章平均质量分 51
IE
久菜
这个作者很懒,什么都没留下…
展开
-
为什么要有override
因为逻辑是用户编写的,那么肯定会有遗漏的地方,那就要规则来限制。就比如多态,都知道条件之一是子类重写了父类的虚函数,但是如果子类没有严格遵守这个规则,就无法达到目的。这其实挺难发现的,因为编译器也并不会去给我们指出来,毕竟多态也并不是一定要实现。刚开始看会以为这是个多态,但其实这并不是,会打印aaa而不是bbb。因为aaa函数并没有被严格地重写:const属性丢失了。还有一种好处是:能让人知道这个函数是重写并且是用作多态的。原创 2023-09-17 22:47:31 · 335 阅读 · 0 评论 -
C++11新特性
比如:重载了两个函数,参数分别是int和int*,当调用函数的时候,NULL就不会匹配到int*,而是匹配到int,这就是C语言宏定义NULL值带来的问题。例如C++11之前没有右值引用,所以形参都是定义成T& x这样的类型,这种左值引用是无法接收右值参数的,现在有了右值引用,就可以把参数改为const T& x,这样既可以接收左值又可以接收右值。需要注意的一点是,什么时候会调用移动构造是通过调用的对象来决定的,如果移动构造和拷贝构造同时存在,就看这个赋值对象是左值/右值,进行匹配拷贝/移动构造。原创 2023-07-29 11:05:26 · 179 阅读 · 0 评论 -
智能指针是如何实现的
而控制块里的资源指针是通过智能指针内部管理的,通常不会被改编,指向原共享资源。资源指针是指向动态分配的资源(如堆上的对象)的原始指针,也就是shared_ptr所管理的对象或者资源。而对于对象里的资源指针,一个比较大的作用是提高访问速率,可以通过对象提供的操作接口,不用每次都从控制块里去访问。智能指针是通过控制块里的资源指针访问共享资源的,所以缺少它将导致无法访问到共享资源。,因为两个资源指针的指向不一定是一样的,尽管大多数情况下是一样的,原因是。它的内部有两个指针,资源指针和控制块指针。原创 2023-07-22 10:34:27 · 93 阅读 · 0 评论 -
C++中一些常见的概念区别
重载是同一个类中定义多个具有相同名称但参数列表不同的方法。它们的特点就是方法名相同但是参数列表不同,并且和返回值类型没有关系。具体的参数列表区分方法就是参数类型、个数和顺序来区分。更为重要的一点是,参数个数必须相同,因为这是作为同一个函数的前提,参数个数不同叫做两个函数。重写是针对子类和父类来说的,就是子类重新定义了父类中的虚函数。子类中满足三同(函数名、参数、返回值)的虚函数,叫做重写(覆盖),如果子类重写了父类的虚函数,就会在子类的虚函数表写入新的虚函数地址;原创 2023-07-20 17:10:15 · 50 阅读 · 0 评论 -
C和C++中const的用法区别
这个具体的实现方法是:C中如果用const修饰一个变量,如果你在编译期间对其进行修改,编译器会进行检查,并且能够检查出来,但是只会进行警告,并不会阻止程序的运行。而C++中则是直接将初始化的值直接嵌入到生成的机器码中(这是一种优化方式),就相当于所有用到该常量的地方已经全部被定义成某个值了,这样的话常量的值在编译期间就已经确定下来了。原创 2023-07-19 16:31:55 · 597 阅读 · 0 评论 -
c++内存布局,和每个区存储的数据类型
需要注意的是,具体的内存布局和各个区域存储的数据类型可能会因操作系统、编译器、目标架构和编译选项的不同而有所差异。上述描述基于一般情况下的常见内存布局,可以作为一般的参考。实际的内存布局可能会有细微的差异,因此最好查阅相关文档或执行针对特定平台的实际测试来了解准确的内存布局和区域中存储的数据类型。存储的数据类型和变量的类型相关。初始化数据区(Initialized Data Segment):存储全局变量和静态变量的初始值。存储的数据类型和变量的类型相关。原创 2023-07-13 17:32:05 · 106 阅读 · 0 评论 -
如何使本文件中的类在外部文件不可见
要使本文件中的类在外部文件不可见,可以使用 C++ 的封装性原则和访问修饰符来限制类的可见性。这可以通过将类定义为私有(private)或者在源文件中不进行声明和定义来实现。这些方法确保了类的定义只在当前文件中可见,其他文件无法访问或引用该类。这样可以有效地限制类的可见性,提高程序的封装性。原创 2023-07-13 17:09:13 · 289 阅读 · 0 评论 -
局部变量和全局变量的区别,能同名吗
局部变量和全局变量的区别,能同名吗原创 2023-07-13 15:50:55 · 1488 阅读 · 0 评论 -
说一说智能指针的内存管理机制
说一说智能指针的内存管理机制原创 2023-07-13 08:58:04 · 167 阅读 · 0 评论