c++ 基础 笔记

1 外部访问就是 实例类后 访问类中变量

class MyClass {
public:
    int publicVar; // 公有变量
protected:
    int protectedVar; // 受保护变量
private:
    int privateVar; // 私有变量
};

MyClass obj;
obj.publicVar = 1; // 正确: 公有变量可以在类外部直接访问
obj.protectedVar = 2; // 错误: 受保护变量不能在类外部直接访问
obj.privateVar = 3; // 错误: 私有变量不能在类外部直接访问

2 基类protected成员是子类的内部成员

class Base {
private:
    int privateVar; // Base类私有成员
protected:
    int protectedVar; // Base类受保护成员
};

class Derived : public Base {
public:
    void AccessMembers() {
        // privateVar = 1; // 错误: Derived类不能访问Base类的私有成员
        protectedVar = 2; // 正确: Derived类可以访问Base类的受保护成员
    }
};

int main() {
    Derived obj;
    // obj.privateVar = 1; // 错误: 不能在类外部访问私有成员
    // obj.protectedVar = 2; // 错误: 不能在类外部访问受保护成员
}

3 创建指针 指向对象用 -> ; 实例化对象用 .

3.1 用 -> 的堆 ( -> 不能用在栈上)

ThrLevel1* thrLevel1 = new ThrLevel1(this, ok); // 创建 指针型用 -> 
connect(thrLevel1, &ThrLevel1::signal, this, &qt_ok::signalThrLevel1);
// 启动线程
thrLevel1->setInstId("BTC-USDT");
thrLevel1->start();

3.2 用 . 的栈

ThrLevel1 thrLevel1(this, ok);
thrLevel1.setInstId("BTC-USDT"); // 使用点操作符访问对象的成员函数
thrLevel1.start();

4 名称遮蔽  加类型名称 声明变量 是局部变量 把类全局变量搞成了 变量所在的局部变量

class MyClass {
public:
    MyClass() {
        MyType* myVar = new MyType(); // 这里创建了一个局部变量 myVar
        // ...
    }

    ~MyClass() {
        delete myVar; // 这里尝试删除的是成员变量 myVar,但它实际上从未被赋值
    }

private:
    MyType* myVar; // 这是类的成员变量
};

如果 myVar 定义的是类的成员变量 但是在构造函数中  加类型名称 声明变量 导致成了局部变量

MyType* myVar = new MyType();

相关推荐

  1. c++ 基础 笔记

    2024-01-05 10:08:14       57 阅读
  2. C++零基础自学笔记

    2024-01-05 10:08:14       45 阅读
  3. c语言0基础笔记

    2024-01-05 10:08:14       56 阅读
  4. C语言基础知识笔记

    2024-01-05 10:08:14       47 阅读
  5. C基础知识笔记

    2024-01-05 10:08:14       45 阅读
  6. 基础算法学习笔记C++)

    2024-01-05 10:08:14       138 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-05 10:08:14       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-05 10:08:14       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-05 10:08:14       87 阅读
  4. Python语言-面向对象

    2024-01-05 10:08:14       96 阅读

热门阅读

  1. git使用 笔记2

    2024-01-05 10:08:14       49 阅读
  2. C 练习实例15

    2024-01-05 10:08:14       64 阅读
  3. LeetCode //C - 2390. Removing Stars From a String

    2024-01-05 10:08:14       62 阅读
  4. C 练习实例12

    2024-01-05 10:08:14       58 阅读
  5. Golang leetcode160相交链表 map 双指针迭代

    2024-01-05 10:08:14       54 阅读
  6. Spring Task之定时任务

    2024-01-05 10:08:14       47 阅读
  7. 如何关闭C源代码中的指定警告?

    2024-01-05 10:08:14       54 阅读
  8. c++ asio: udp server and client demo

    2024-01-05 10:08:14       70 阅读