2023年4月30日
摘要: 对于一个QTcpServer服务器来说,每当有新客户端连接时,系统会为其分配一个新的QTcpSocket对象进行管理。默认情况下,在incomingConnection函数中创建的QTcpSocket对象将在应用程序主线程中运行,而不是连接所需的处理线程中运行。如果开发者需要确保收到数据的顺序以及避 阅读全文
posted @ 2023-04-30 19:49 斗战胜佛美猴王 阅读(509) 评论(0) 推荐(0) 编辑
  2023年4月7日
摘要: 一.代码分发方式 代码分发方式有三种: 二.动态库与静态库区别 三.C/C++到可执行程序的过程: 四 总结 首先清楚,一般来说源码包含.h+.cpp两个文件,而静态库包含.h+.lib文件,动态库包含.h+.lib+.dll,明显动态库要比静态库的文件要更零散一点; 其次,要知道.h/.lib/. 阅读全文
posted @ 2023-04-07 13:28 斗战胜佛美猴王 阅读(82) 评论(0) 推荐(0) 编辑
  2023年3月15日
摘要: 1.概述 为了实现C++的多态,C++使用了一种动态绑定的技术,这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。 2.类的虚表[指针类型的数组来保存虚函数的函数指针,仅属于类] 每个包含了虚函数的类都包含一个虚表,类中只要有虚函数,就会有一个虚表来维护。 虚表是属于类 阅读全文
posted @ 2023-03-15 16:35 斗战胜佛美猴王 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 1.为什么要有仿函数 假设我们现在有一个数组,数组中存有任意数量的数字,我们希望能够统计出这个数组中大于 10 的数字的数量,你的代码很可能是这样的: #include <iostream> using namespace std; int RecallFunc(int *start, int *e 阅读全文
posted @ 2023-03-15 11:22 斗战胜佛美猴王 阅读(274) 评论(0) 推荐(0) 编辑
  2023年3月13日
摘要: 一.函数模版【一个函数,不同类型的参数来调用】 函数模板是C++新增的一种性质,它允许只定义一次函数的实现,即可使用不同类型的参数来调用该函数(一个函数多用)。这样做可以减小代码的书写的复杂度,同时也便于修改(注:使用模板函数并不会减少最终可执行程序的大小,因为在调用模板函数时,编译器都根据调用时的 阅读全文
posted @ 2023-03-13 16:20 斗战胜佛美猴王 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 遵循三个规则 C++类内可以定义引用成员变量,但要遵循以下三个规则: 不能用默认构造函数初始化,必须提供构造函数来初始化引用成员变量。否则会造成引用未初始化错误。 构造函数的形参也必须是引用类型 不能在构造函数的函数体赋值(为什么不是说初始化呢?因为所有的成员变量都是在初始化列表中完成的),必须在初 阅读全文
posted @ 2023-03-13 10:21 斗战胜佛美猴王 阅读(233) 评论(0) 推荐(0) 编辑
  2023年3月9日
摘要: 1.虚基类 在多继承关系中,如果一个派生类的从两个父类那里继承过来,并且这两个父类又恰恰是从一个基类那里继承而来【菱形继承问题】。那这样就麻烦了,因为你可能继承了两份一样的成员!这不仅多占用内存,而且还出现了所谓二义性问题。 #include <iostream> using namespace s 阅读全文
posted @ 2023-03-09 18:05 斗战胜佛美猴王 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一.定义【源对象资源的控制权全部移交给目标对象】 有些复制构造是必要的,我们确实需要另外一个副本;而有些复制构造是不必要的,我们可能只是希望这个对象换个地方,移动一下而已。在C++11之前,如果要将源对象的状态转移到目标对象只能通过复制。而现在在某些情况下,我们没有必要复制对象——只需要移动它们。移 阅读全文
posted @ 2023-03-09 13:34 斗战胜佛美猴王 阅读(2705) 评论(0) 推荐(2) 编辑
  2023年2月27日
摘要: 一. 区别: 是不是函数: 宏定义不是函数,但是使用起来像函数。预处理器用复制宏代码的方式代替函数的调用,省去了函数压栈退栈过程,提高了效率; 内联函数本质上是一个函数,内联函数一般用于函数体的代码比较简单的函数,不能包含复杂的控制语句,while、switch,并且内联函数本身不能直接调用自身。 阅读全文
posted @ 2023-02-27 17:03 斗战胜佛美猴王 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 一.定义介绍 1.1 定义 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。所以,可以理解为每一个函数都占用 阅读全文
posted @ 2023-02-27 16:12 斗战胜佛美猴王 阅读(126) 评论(0) 推荐(0) 编辑