目录

  1. 类与对象概述
  2. 类的定义与声明
  3. 构造函数与析构函数
  4. 类成员(属性与方法)
  5. 访问控制:public、private 和 protected
  6. this 指针
  7. 类的静态成员
  8. 对象的创建与使用
  9. 总结与参考资料

1. 类与对象概述

在 C++ 中,类(Class)是面向对象编程的核心概念,用于定义数据类型和操作这些数据的函数。类通过封装(Encapsulation)将数据和操作结合在一起,而对象(Object)是类的具体实例。

  • :定义对象的属性(成员变量)和行为(成员函数)。
  • 对象:通过类创建的具体实体,可以使用类中定义的成员和方法。

2. 类的定义与声明

类的定义使用关键字 classstruct(默认访问权限不同):

class MyClass {
    // 成员默认私有 (private)
public:
    // 公有成员:外部可以访问
    int publicVar;
    
    // 成员函数声明
    void display();
    
private:
    // 私有成员:只能在类内部访问
    int privateVar;
};

在上例中,MyClass 定义了一个类,包含公有和私有成员。


3. 构造函数与析构函数

  • 构造函数:用于初始化对象,在创建对象时自动调用。构造函数的名称与类名相同,可以重载。
  • 析构函数:在对象生命周期结束时自动调用,用于释放资源。析构函数名称前加波浪符号 ~

示例:

#include <iostream>
using namespace std;

class MyClass {
public:
    int value;

    // 构造函数
    MyClass(int val) : value(val) {
        cout << "构造函数调用,初始化 value 为 " << value << endl;
    }
    
    // 析构函数
    ~MyClass() {
        cout << "析构函数调用,释放资源" << endl;
    }
    
    void display() {
        cout << "value = " << value << endl;
    }
};

int main() {
    MyClass obj(10);  // 创建对象并初始化
    obj.display();
    // 当 main() 结束时,obj 被销毁,析构函数自动调用
    return 0;
}


4. 类成员(属性与方法)

类的成员分为:

  • 数据成员:存储对象的属性。
  • 成员函数:实现对象的行为。

示例:

class Person {
public:
    string name;  // 数据成员:姓名
    int age;      // 数据成员:年龄

    // 成员函数:打印个人信息
    void showInfo() {
        cout << "姓名: " << name << ", 年龄: " << age << endl;
    }
};

通过创建 Person 对象,可以为成员赋值并调用成员函数。


5. 访问控制:public、private 和 protected

  • public:公有成员,类外可访问。
  • private:私有成员,只能在类内部访问。
  • protected:受保护成员,在类内部及派生类中可访问。

示例:

class Sample {
public:
    int pubData;      // 公有成员
private:
    int priData;      // 私有成员
protected:
    int proData;      // 受保护成员
};

访问控制有助于封装和数据隐藏,提高代码的安全性和模块化。


6. this 指针

在类的成员函数中,this 指针指向调用该函数的对象。它用于区分成员变量与局部变量,并支持链式调用。

class MyClass {
public:
    int value;
    MyClass(int value) {
        this->value = value;  // 使用 this 指针区分参数和成员变量
    }
};


7. 类的静态成员

静态成员属于类本身,而非具体对象。

  • 静态数据成员:所有对象共享同一份数据。
  • 静态成员函数:可以在没有对象的情况下调用,只能访问静态数据成员。

示例:

class Counter {
public:
    static int count;  // 静态数据成员
    
    Counter() {
        count++;
    }
    
    static void showCount() {  // 静态成员函数
        cout << "计数值: " << count << endl;
    }
};

// 定义静态成员(必须在类外定义)
int Counter::count = 0;


8. 对象的创建与使用

对象可以在栈上(自动存储)或堆上(动态存储)创建。

  • 栈上创建MyClass obj(10);
  • 堆上创建MyClass* pObj = new MyClass(20); // 使用完毕后需要释放内存 delete pObj;

9. 总结与参考资料

  • 类与对象 是面向对象编程的基础,通过类的封装、继承和多态,实现数据与操作的整合。
  • 构造函数和析构函数管理对象生命周期;访问控制和静态成员提高了程序的安全性和灵活性。
  • 理解 this 指针和对象的内存管理是编写高效 C++ 程序的关键。

参考资料:

通过掌握类与对象的概念和用法,可以构建更清晰、模块化、易维护的 C++ 程序。