面向对象编程初步

类初步

什么是类?

在C++中,类(class)是一个用户定义的数据类型,它不仅可以包含数据成员(类似于结构体的成员变量),还可以包含函数成员(也称为方法),这些函数成员可以操作类中的数据。类的设计初衷就是为了更好地封装数据和操作,使得代码更加模块化和可维护。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// 定义一个表示学生的类
class Student {
private:
string name;
int age;
float score;

public:
// 构造函数
Student(string n, int a, float s) : name(n), age(a), score(s) {}

// 成员函数:打印学生信息
void printInfo() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "分数:" << score << endl;
}

// 成员函数:更新分数
void updateScore(float newScore) {
score = newScore;
}
};

int main() {
// 创建一个Student对象
Student student1("Alice", 20, 88.5);

// 打印学生信息
student1.printInfo();

// 更新学生分数
student1.updateScore(92.0);
cout << "更新后的分数:" << endl;
student1.printInfo();

return 0;
}

在这个例子中,我们定义了一个Student类,它包含了三个私有数据成员:nameagescore。这些成员只能通过类内部的函数成员(printInfoupdateScore)来访问和修改。

  • 构造函数Student(string n, int a, float s)是类的构造函数,它在创建对象时初始化数据成员。
  • 成员函数printInfo用于打印学生信息,updateScore用于更新学生的分数。

结构体与类的异同

相似点:

  1. 定义和使用:结构体和类的定义方式非常相似,都可以包含数据成员和函数成员。
  2. 功能:结构体和类都可以实现封装数据和操作数据的功能。

不同点:

  1. 默认访问控制:结构体中的成员默认是public的,而类中的成员默认是private的。这是最主要的区别。
  2. 用途和习惯:在C++中,结构体通常用于定义简单的数据结构,而类则用于定义更复杂的对象,并封装其行为和状态。

强调:结构体只是“all public”的类

其实,结构体和类在C++中几乎是一样的。唯一的语法区别在于,结构体的成员默认是public的,而类的成员默认是private的。换句话说,结构体就是一个默认所有成员都是public的类。如果你将结构体的成员设置为private,并为它添加函数成员,那么它就和类没有区别了。


面向对象编程初步
http://example.com/2025/02/12/2025-02-12-面向对象编程初步/
作者
Kiriao
发布于
2025年2月12日
许可协议