c++中的类有关概念

在 C++ 中,类(Class) 是面向对象编程(OOP)的核心概念,用于封装数据和行为。以下是关于类的主要概念和用法:


1. 类的基本结构

  • 定义类:使用 classstruct 关键字(class 默认成员为 privatestruct 默认成员为 public)。
    class MyClass {
    public:
        // 公有成员(外部可访问)
        void publicMethod();
    
    private:
        // 私有成员(仅类内可访问)
        int privateData;
    };
    

2. 成员变量和成员函数

  • 成员变量:类内部定义的变量,表示对象的状态。
  • 成员函数:类内部定义的函数,表示对象的行为。
    class Circle {
    public:
        double radius;
        double getArea() {
            return 3.14 * radius * radius;
        }
    };
    

3. 访问控制

  • public:类外可直接访问。
  • private:仅类内或友元(friend)可访问。
  • protected:类内、派生类或友元可访问。
    class Example {
    public:
        int a;       // 公有
    private:
        int b;       // 私有
    protected:
        int c;      // 保护
    };
    

4. 构造函数与析构函数

  • 构造函数:初始化对象,与类同名,无返回值。
    • 默认构造函数:无参数或参数有默认值。
    • 拷贝构造函数:用同类对象初始化(如 MyClass(const MyClass& other))。
    • 移动构造函数(C++11):用于资源转移(如 MyClass(MyClass&& other))。
  • 析构函数:释放资源,以 ~ 开头,无参数。
    class Person {
    public:
        Person() { /* 默认构造 */ }
        Person(const Person& other) { /* 拷贝构造 */ }
        ~Person() { /* 析构 */ }
    };
    

5. 静态成员

  • 静态成员变量:属于类本身,所有对象共享。
  • 静态成员函数:只能访问静态成员,无 this 指针。
    class Counter {
    public:
        static int count;  // 静态变量声明
        static void increment() { count++; }
    };
    int Counter::count = 0; // 静态变量定义
    

6. 继承

  • 基类(父类)派生类(子类),支持代码复用。
  • 继承方式publicprotectedprivate
    class Animal { /* 基类 */ };
    class Dog : public Animal { /* 派生类 */ };
    

7. 多态与虚函数

  • 虚函数(Virtual Function):允许派生类覆盖基类实现。
    class Shape {
    public:
        virtual void draw() { /* 基类实现 */ }
    };
    class Circle : public Shape {
    public:
        void draw() override { /* 派生类实现 */ }
    };
    
  • 纯虚函数:定义抽象类(不能实例化)。
    class AbstractClass {
    public:
        virtual void pureVirtual() = 0; // 纯虚函数
    };
    

8. 友元(Friend)

  • 友元函数/类:允许非成员函数或类访问私有成员。
    class MyClass {
    private:
        int secret;
        friend void friendFunction(MyClass& obj); // 友元函数
    };
    void friendFunction(MyClass& obj) {
        obj.secret = 42; // 可直接访问私有成员
    }
    

9. 运算符重载

  • 重载运算符(如 +, ==)以支持自定义类型操作。
    class Vector {
    public:
        Vector operator+(const Vector& other) {
            // 实现向量加法
        }
    };
    

10. this 指针

  • 指向当前对象的指针,用于成员函数内部访问自身成员。
    class MyClass {
    public:
        void setValue(int value) {
            this->value = value; // 明确指向当前对象的成员
        }
    private:
        int value;
    };
    

11. 嵌套类

  • 在类内部定义的类,通常用于实现细节。
    class Outer {
    public:
        class Inner { /* 嵌套类 */ };
    };
    

12. 移动语义(C++11)

  • 移动构造函数移动赋值运算符:高效转移资源(如动态内存)。
    class MyString {
    public:
        MyString(MyString&& other) { /* 移动资源 */ }
    };
    

总结

类在 C++ 中通过 封装继承多态 实现面向对象设计。合理使用构造函数、访问控制、虚函数等特性,可以构建高效、可维护的代码结构。


练一练:

在这里插入图片描述
答案 D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangyuxuan1029

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值