月度归档: 2025 年 6 月

14 篇文章

C++指针问题解决思路
在C++中,指针使用不当常常导致程序运行结果出现难以察觉的错误,而编译器并不会报错。以下是对指针常见问题的系统总结,包含问题描述、检查点和解决方案: C++指针问题全面总结 问题类型问题描述关键检查点解决方案未初始化指针指针值为随机地址,解引用导致未知内存修改1. 定义时是否初始化2. 解引用前是否…
左移右移运算符
在C++中,左移运算符(<<) 和 右移运算符(>>) 是位运算符,用于对整型数据的二进制位进行移位操作。它们分为两种用途:位运算和流操作。以下详解其工作机制与注意事项。 一、位运算符(Bitwise Shift) 1. 左移运算符 << 功能:将操作数的所有位向…
C语言结构体的定义和声明
在C语言中,结构体(struct)是一种复合数据类型,允许将不同类型的数据组合成一个整体。结构体是构建复杂数据结构的基础,在系统编程、数据组织和内存管理中广泛应用。 一、结构体的基本定义 1. 基本语法 struct [结构体标签] { 数据类型 成员1; 数据类型 成员2; // ... …
qtcreator 配置 opencv qt和opencv环境搭建
一:配置opencv: step1:下载opencv源码: step2:下载cmake和配置编译opencv: cmake是跨平台的安装工具,可以通过他来对源码构建出不同平台的makefile 文件。 运行cmake,按下图操作 点击configure: 这时会弹出编译器选择界面,比如我们用的是qt…
牛客专项训练C/C++笔记
int k=10; while (k=0) k=k-1; //k=0 的值是0 k=5 的值是5 C语言本身确实没有输入输出语句,这是正确的。C语言的输入输出函数(如printf、scanf等)是由C标准库提供的,而不是语言本身的组成部分。这些函数都定义在stdio.h头文件中。 递归函数不能被用来…
C++ 的 default 与 delete 关键字
一、= default:显式默认化 核心作用:显式要求编译器生成特殊成员函数的默认实现 特性说明语法位置类内声明(C++11起支持类外定义)适用函数6大特殊成员函数:默认构造、析构、拷贝构造、拷贝赋值、移动构造(C++11)、移动赋值(C++11)优化保证生成的函数自动标记为 inline 和 no…
为什么类变量经常使用指针而不是直接实例
在 C++ 中,类变量经常使用指针(ClassA *classa)而不是直接实例(ClassA classa)的原因是多方面的,主要涉及面向对象设计、资源管理和性能优化。以下是关键原因: 1. 多态性支持(核心原因) 指针是实现运行时多态的必要条件: class Animal { public: v…
单例模式
单例模式 (Singleton Pattern) 深度解析 1. 核心意图 确保一个类只有一个实例,并提供该实例的全局访问点。主要解决资源冲突、状态一致性等问题。 2. 关键特征 私有化构造函数(禁止外部创建) 静态私有成员变量(保存唯一实例) 静态公有方法(全局访问点) 线程安全机制 禁止拷贝和赋…
设计模式
设计模式是软件工程中解决常见设计问题的可复用方案,它们能提升代码的可维护性、可扩展性和复用性。最经典和基础的是 GoF(Gang of Four)提出的 23 种设计模式,通常分为三大类: 🧱 一、创建型模式 (Creational Patterns) 关注对象的创建机制,使系统不依赖于对象的具体创…
C++智能指针
智能指针是C++11引入的自动内存管理工具,用于解决原生指针容易导致的内存泄漏、悬空指针等问题。它们通过RAII(资源获取即初始化)技术,在对象生命周期结束时自动释放内存。 核心智能指针类型 std::unique_ptr(独占所有权指针) 特点: 独占资源所有权,不可复制(禁用拷贝构造/赋值)。 …