C++
文章平均质量分 93
C++知识点
WarLar.
这个作者很懒,什么都没留下…
展开
-
C++:面经7
/ 自定义比较函数// 例如,这里定义了一种使得键值大的元素排在前面的排序方式// 使用自定义比较函数作为map的第三个模板参数// 插入键值对// 输出map的内容,可以看到键是降序排列的return 0;原创 2024-09-30 10:48:00 · 634 阅读 · 0 评论 -
C++:面经5
当基类中定义了一个虚函数,并且在派生类中重写了这个函数时,派生类的虚函数表中对应位置的函数地址会被更新为派生类中函数的地址。这些虚函数表按照继承的顺序排列,每个表的条目指向相应的虚函数。例如,如果一个类的设计非常具体和封闭,不适合被扩展,那么可以将这个类标记为final,以确保它不会被其他类继承。在两层继承的情况下,如果父类直接管理子类对象,或者子类对象不被基类指针所指向,那么子类的析构函数可以不是虚函数。中一个重要的概念,它提供了一种灵活的操作方式,使得SQL这种面向集合的语言具备了面向过程开发的能力。原创 2024-09-20 18:02:58 · 624 阅读 · 0 评论 -
C++:面经4
使用extern关键字可以使得变量或函数能够在不同的源文件之间共享,这对于组织大型项目的代码非常有用。需要注意的是,extern关键字只是用于声明,而不是定义。在定义全局变量或函数时不需要使用extern关键字。在另一个文件中进行定义时,不需要再使用extern关键字。另外,extern关键字也可以用于指定一个全局变量或函数为外部链接,即使在同一个文件中也可以使用extern关键字。原创 2024-09-16 14:39:41 · 490 阅读 · 0 评论 -
C++:面经3
在C++中,定义一个常量可以使用const关键字。例如,这行代码定义了一个名为MAX_VALUE的常量,其值为100,且该值在程序运行期间不能被修改。常量的值必须在声明时或编译时就确定,因此它们通常用于那些在程序执行期间不会改变的量。原创 2024-09-07 23:05:53 · 907 阅读 · 0 评论 -
C++:面经2
TCP粘包和拆包是网络通信中常见的问题,主要是由于TCP协议的特性以及网络传输的不稳定性导致的。粘包和拆包的定义粘包:多个小数据包被合并成一个大数据包发送,导致接收端无法正确区分每个数据包的边界。拆包:一个大数据包被拆分成多个小数据包发送,导致接收端无法正确组装这些数据包。发生的原因网络延迟:数据包的发送和接收可能因为网络延迟而导致粘包或拆包。缓存区大小不合适:如果缓存区大小设置不当,可能导致数据包过大或过小,从而引起粘包或拆包。数据长度超过缓存区大小。原创 2024-09-05 18:36:18 · 883 阅读 · 0 评论 -
C++:面经1
此外,如果选定的页框包含的数据需要被写回到磁盘,因为该页框的数据已经修改,操作系统会先将数据写回磁盘,然后标记页框为可用状态。为了保证可靠性,服务器应该通过多种方式来判断客户端是否断线,并且在判断客户端断线后及时处理,关闭相应的连接资源,避免资源的浪费和影响服务器的性能。首先,自增ID的一个潜在问题是它们不具有连续性。综上所述,虽然自增ID在大多数情况下能够满足基本的需求,但在特定场景下,如需要高度连续性的ID、多表合并、分布式数据库应用或对DBMS重启后的行为有特定要求时,自增ID可能不是最佳选择。原创 2024-09-04 18:04:07 · 1373 阅读 · 0 评论 -
C++:4.STL
1.4.1 请说说 STL 的基本组成部分标准模板库(Standard Template Library,简称STL)简单说,就是一些常用数据结构和算法的模板的 集合。广义上讲,STL分为3类:Algorithm(算法)、Container(容器)和Iterator(迭代器),容器和算 法通过迭代器可以进行无缝地连接详细的说,STL由6部分组成:容器(Container)、算法(Algorithm)、 迭代器(Iterator)、仿函数 (Function object)、适配器(Adaptor原创 2024-08-31 19:50:19 · 631 阅读 · 0 评论 -
C++:3.面向对象
1. 面向对象是一种编程思想,把一切东西看成是一个个对象,比如人、耳机、鼠标、水杯等,他们各 自都有属性,比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,把这些对象拥有的属性 变量和操作这些属性变量的函数打包成一个类来表示2. 面向过程和面向对象的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的 重写过程只定义了析构函数,编译器将自动为我们生成拷贝构造函数和默认构造函数。默认构造函数和初始化构造函数。原创 2024-08-30 19:50:57 · 1037 阅读 · 0 评论 -
C++:2.内存
BSS段通常是指用来存放程序中未初始化的或者初始化为0的全局变量和静态变量的一块内存区域。特 点是可读写的,在程序执行之前BSS段会自动清0。栈使用的是一级缓存, 它们通常都是被调用时处于存储空间中,调用完毕立 即释放;栈由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等;局部变量是在栈中分配内存,超过作用域就 自动回收。在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。如上图,从低地址到高地址,一个程序由代码段、数据段、BSS段、堆、共享区、栈等组成。原创 2024-08-30 18:48:07 · 614 阅读 · 0 评论 -
C++:1.语言基础
1. 概念:函数指针就是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指 针所指向的地址。2. 定义形式如下:f = &func;3. 函数指针的应用场景:回调(callback)。我们调用别人提供的 API函数(Application Programming Interface,应用程序编程接口),称为Call;如果别人的库里面调用我们的函数,就叫 Callback。原创 2024-08-30 17:28:21 · 1132 阅读 · 0 评论