刷新
C++中const小结

const 修饰普通变量 表示变量的值不能被改变。下面两条语句(第2行和第3行)表示的意思一致。 int a; const int ca = 42; //int const ca = 42; const 修饰指针 指向常量的指针不能改变其指对象的值。第 5 行代码是错误的。 int a = 42; ...

C++ Qt开发:QProcess进程管理模块

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QProcess`组件实现针对进程的控制管理等。当你在使用Qt进行跨平台应用程序开发时,经常需要与外部进... ...

C++对象切片探秘:派生类对象如何被‘切割’?

博主头像 概述:C++中的对象切片指通过将派生类对象赋值给基类对象,导致派生部分被“切掉”,只保留基类部分。这可能发生在值传递、赋值等操作中。对象切片的基础功能示例展示了派生类对象赋值给基类对象时的现象,而高级功能示例则展示了通过基类指针实现派生类对象的访问和多态。 对象切片(Object Slicing)是 ...

AT_abc345_d 题解

博主头像 我不会长大后再学习我不会长大后再学习我不会长大后再学习我不会长大后再学习我不会长大后再学习我不会长大后再学习 ...

C++模板实现之谜:为何只能在头文件中?解密原因与高级分离技术

博主头像 概述:C++中模板必须在头文件中实现,因为编译器需要可见的实现以生成模板具体实例的代码。通过头文件,确保模板在每个编译单元中都能被正确展开,提高可维护性。 在C++中,模板只能在头文件中实现的主要原因是编译器在使用模板时需要生成对应的代码,而这部分代码必须在编译时可见。以下是详细的解释和示例。 基础 ...

C++ Qt开发:QUdpSocket实现组播通信

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QUdpSocket`组件实现基于UDP的组播通信。组播是一种一对多的通信方式,允许一个发送者将数据报文... ...

解析C++链接错误:未定义引用和未解析符号的完整解决方案

博主头像 概述:C++中的"未定义的引用"和"未解析的外部符号"错误通常源于声明与定义不一致或缺失定义。解决方法包括确保所有声明有相应定义、检查定义位置,使用头文件和命名空间组织代码。这些步骤帮助开发者提高代码可维护性和避免链接错误。 在C++中,"未定义的引用"和"未解析的外部符号"错误通常指向编译器找不到 ...

C++ Qt开发:QUdpSocket网络通信组件

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QUdpSocket`组件实现基于UDP的网络通信功能。与`QTcpSocket`组件功能类似,`QUd... ...

C++STL第五篇(链表List的使用方法)

博主头像 list 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相较于vector的连续线 ...

设计模式学习(一)单例模式补充——指令重排

博主头像 目录前言指令重排简介指令重排对单例模式的影响改进方法std::call_once和std::once_flagstd::atomic和内存顺序局部静态变量总结参考文章 前言 在《单例模式学习》中曾提到懒汉式DCLP的单例模式实际也不是线程安全的,这是编译器的指令重排导致的,本文就简单讨论一下指令重排 ...

C++中虚表是什么

博主头像 虚函数表,以及虚函数指针是实现多态性(Polymorphism)的关键机制。多态性允许我们通过基类的指针或引用来调用派生类的函数 定义 虚函数(Virtual Function) 定义:类中使用virtual 关键字修饰的函数 叫做虚函数 语法: class Base { public: virtu ...

C++学习笔记——003

博主头像 malloc() 函数在 C 语言中就出现了,在 C++ 中仍然存在,但建议尽量不要使用 malloc() 函数。new 与 malloc() 函数相比,其主要的优点是,new 不只是分配了内存,它还创建了对象。 //一维数组动态分配,数组长度为 m int *array = new int [m] ...

C++ Qt开发:QTcpSocket网络通信组件

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。`QTcpSocket`和`QTcpServer... ...

<1···345···35>