logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++智能指针的功能和使用细节

本节我们来深入、全面地探讨现代C++中智能指针的功能、用法、细节和陷阱。智能指针是C++11及以后版本中最重要的特性之一,它旨在通过自动化资源管理来彻底解决裸指针带来的内存泄漏、悬空指针等问题。

#c++
C++项目中直接定义变量和动态分配的不同适用场景

这是最常见的情况,函数内部需要的临时对象、计数器、返回值等,都应该优先在栈上创建。代码简单、安全、高效。对象生命周期与当前作用域一致时,也就是这个对象只在当前代码块内有用,那么直接定义是最佳选择。

#c++
C++使用多态时要注意的用法细节

规则: 如果一个类打算被用作基类(即会被其他类继承),并且会通过基类指针来删除派生类对象,那么它的析构函数必须是 virtual。为什么:如果析构函数不是虚的,当我们delete 一个指向派生类对象的基类指针时,只会调用基类的析构函数,而不会调用派生类的析构函数。这会导致派生类部分的资源泄漏。public:} // 非虚析构函数 - 大问题!public:// 基类指针指向派生类对象delete

#c++
C++大型项目产生编译依赖的原因和解决方案

编译依赖指的是源文件之间的依赖关系,当某个文件发生变化时,需要重新编译哪些其他文件。依赖关系越复杂、越深,编译系统需要做的工作就越多,编译时间就越长。头文件中的宏定义被修改时,所有包含该头文件的文件都需要重新编译。

#c++#设计规范
C++几种避免参数穿透的函数设计规范

首选上下文对象:最灵活且类型安全考虑依赖注入:适合大型、需要测试的项目谨慎使用单例:可能导致测试困难和全局状态问题线程局部存储:适合Web服务器等请求-响应模型明确文档:无论选择哪种方法,都要清晰文档化数据流根据项目的规模、复杂度和团队偏好选择合适的方案。上下文对象通常是最平衡的选择。

#c++#设计规范
C++的核心原则和设计模式规范(全)

核心思想:将数据(属性)和操作数据的方法(函数)捆绑在一起,并隐藏对象的内部实现细节。对象只对外提供一个可控的访问接口。好处:1.提高安全性:防止外部代码随意修改内部数据,只能通过你提供的方法来修改,你可以在方法中添加验证逻辑。2.降低复杂度:使用者无需关心内部实现,只需关注接口。3.易于维护:内部实现可以自由更改,只要对外接口不变,就不会影响其他代码。

#c++#设计规范
C++关键字auto的介绍和使用方法

auto关键字是现代C++编程中的重要特性,可以:简化代码,减少冗余类型名称提高代码的通用性和维护性避免隐式类型转换错误。

#c++#c##开发语言
C++项目设计的核心原则——“封装”的理解和用法细节

对于大型C++项目,严格遵循封装原则,将成员变量设为私有,并通过公有接口访问,是保证代码长期健康、可维护、可扩展的最重要实践之一。将其作为默认选择,只有在经过深思熟虑后,才为那些极其简单的数据聚合类型使用公有变量。深思接口设计:提供抽象的行为,而非数据的通道。严守const正确性:不修改状态的getter务必加const。小心返回内部状态:优先返回副本或const引用。正确初始化:使用初始化列表。

#c++#设计模式
C++复杂类对象初始化的方法

一个复杂的类,定义其对象时可能有多种初始化的方法,不仅他们之间很容易搞混,还容易和先定义再赋值的一些情况混淆,本节我们详细列举常遇到的初始化方式,用于区分学习。

#c++
VS中Git的功能和使用细节

1.勤提交:提交是小而频的好习惯。每次提交只做一个明确的更改。2.写清晰的提交信息:这是 professionalism 的体现。3.推拉前先暂存/提交:在点击“拉取”或“同步”之前,最好将手头的工作先暂存或提交起来,保持工作区干净,避免冲突复杂化。4.多用分支:任何新功能或bug修复都应在独立分支上进行,再合并回`main`分支。保证`main`分支始终是可用的稳定版本。5.理解“修改(Amen

#git
到底了