分类
Code
-
代码结构的本质:高内聚、低耦合与模块化设计
1 前言 代码写到后面,真正让人头疼的,往往不是功能本身,而是结构。 项目刚开始时,代码量不大,开发者对上下文也足够熟悉。哪怕一个文件里同时放了流程控制、状态管理、工具函数和数据处理,短时间内似乎也不会出太大问题。可一旦项目进入持续迭代阶段,需求变多、参与的人变多、历史代码变多,结构问题就会迅速放大
-
CAPL 入门
1 CAPL 概述 CAPL(CAN Application Programming Language)是由 Vector Informatik 开发的一种专用于汽车网络仿真与测试的脚本语言。CAPL 主要运行于 Vector 的网络分析与仿真工具(如 CANoe、CANalyzer)中,用于实现网
-
C++类和对象-初始化和清理
C++中,构造函数在对象创建时初始化数据成员或申请资源,析构函数在对象销毁前释放资源。构造函数无返回值,函数名与类名相同,可重载;析构函数无返回值,函数名与类名相同前加~,不可重载。构造函数分为无参、有参和拷贝构造函数,调用方式包括括号法、显示法和隐式转换法。拷贝构造函数用于复制已有对象数据到新对象,在对象初始化、函数值传递和函数返回局部对象时被调用。编译器自动生成默认构造、拷贝构造和析构函数,但定义有参构造或拷贝构造时不再生成默认构造。深拷贝为指针成员分配新内存并复制内容,避免浅拷贝导致资源共享和重复释放。初始化列表用于初始化成员变量,特别是const成员、引用类型成员和无默认构造的类类型成员,初始化顺序由声明顺序决定。类对象作为成员时,构造顺序先成员后类,析构顺序相反。静态成员属于类本身,所有对象共享同一份数据,必须在类外初始化,可通过对象或类名访问。
-
C++智能指针解析
本文深入探讨了C++智能指针,旨在帮助开发者理解并掌握这一重要的内存管理工具。智能指针通过RAII思想,将资源生命周期与对象绑定,自动管理内存,避免内存泄漏。文章详细介绍了`unique_ptr`、`shared_ptr`和`weak_ptr`三种智能指针的特性、使用场景及底层实现机制。`unique_ptr`独占资源,`shared_ptr`共享资源并使用引用计数,`weak_ptr`则用于解决循环引用。此外,还对比了智能指针与传统指针的区别,并提供了使用建议和注意事项,强调智能指针是C++现代化的基石,掌握它们是理解C++资源管理的关键。
-
C++类和对象-封装
C++面向对象编程的核心是封装,它将数据(属性)和操作数据的函数(行为)组合成类,实现数据安全和模块化。封装通过public、protected和private三种访问权限控制类内、类外及继承中的访问。class和struct的区别在于默认访问权限不同,前者为private,后者为public。将成员属性设为私有可以控制读取/写入行为,并在写入时检查有效性。封装是C++继承和多态的基础,有助于编写健壮、可扩展的代码。