目录
- 类与对象概述
- 类的定义与声明
- 构造函数与析构函数
- 类成员(属性与方法)
- 访问控制:public、private 和 protected
- this 指针
- 类的静态成员
- 对象的创建与使用
- 总结与参考资料
1. 类与对象概述
在 C++ 中,类(Class)是面向对象编程的核心概念,用于定义数据类型和操作这些数据的函数。类通过封装(Encapsulation)将数据和操作结合在一起,而对象(Object)是类的具体实例。
- 类:定义对象的属性(成员变量)和行为(成员函数)。
- 对象:通过类创建的具体实体,可以使用类中定义的成员和方法。
2. 类的定义与声明
类的定义使用关键字 class
或 struct
(默认访问权限不同):
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++ 程序。
发表回复