美文网首页
2025-09-10

2025-09-10

作者: 努力生活的西鱼 | 来源:发表于2025-09-17 22:12 被阅读0次
    1. C++中的静态成员变量
    .h
    // 单例指针
    static SerialManager *m_instance;
    
    .cpp
    // 静态成员变量,必须在类外单独定义
    SerialManager* SerialManager::m_instance = nullptr;
    
    1. 静态成员变量必须在类外定义

      • C++中,类的静态成员变量(static成员)必须在类外单独定义,否则会导致链接错误
      • 在头文件中,static SerialManager *m_instance;只是声明,而不是定义,编译器不会为它分配存储空间。
      • 因此,必须在.cpp文件中显式定义这个静态变量,否则程序运行时会出现m_instance未定义的错误
    2. 初始化m_instance为nullptr

      • =nullptr确保m_instance初始化为空指针,防止未初始化的指针导致未定义行为
      • 如果不初始化,m_instance的值可能是随机的,导致instance()方法无法正确判断是否已经创建实例

    不允许对数组进行整体赋值操作,只能使用循环逐一复制元素

    数组的地址:

    数组的基地址:数组开始存储的物理地址
    数组首元素的基地址:数组首个元素开始存储的物理地址,数值上总是与数组基地址相同
    &操作符:&a获得数组的基地址;&a[0]获得数组首元素的基地址

    void handleSerialData(const QByteArray &data);
    
    1. const:
    • 保护数据:const确保方法内部不能修改data的内容,防止意外更改调用者的数据
    • 接口明确:向调用者表明该函数不会修改传入的数据,增强代码的可读性和安全性
    1. &(引用):
    • 避免拷贝:使用引用传递可以避免在函数调用时对QByteArray对象进行拷贝,提高性能,尤其是当data较大时
    • 直接操作原数据:引用允许函数直接访问调用者传递的对象,而不是副本

    const QByteArray &data是一种高效且安全的参数传递方式

    相关文章

      网友评论

          本文标题:2025-09-10

          本文链接:https://www.haomeiwen.com/subject/bcffzjtx.html