C++ 类与对象:class 定义与实例化
C++ 中的“类”就像是制作产品的“模具”或“蓝图”,而“对象”则是根据这个模具生产出来的具体“产品”。理解类与对象,是掌握 C++ 面向对象编程的第一步。
1. 定义一个类
定义类就是告诉计算机这个“模具”长什么样。它包含两部分:属性(数据)和方法(行为)。
打开你的代码编辑器,新建一个名为 main.cpp 的文件。输入 class 关键字来定义一个类,后面紧跟类的名称。
假设我们要定义一个描述“矩形”的类:
- 声明类名:通常使用大驼峰命名法(首字母大写),例如
Rectangle。 - 添加访问权限修饰符:使用
public(公共的),让外部代码可以访问类内部的成员。 - 定义成员变量:即类的属性,例如矩形的
width(宽)和height(高)。 - 定义成员函数:即类的方法,例如计算面积的
getArea()函数。
代码示例如下:
class Rectangle {
public:
// 成员变量(属性)
double width;
double height;
// 成员函数(方法)
double getArea() {
return width * height;
}
};
注意:类定义的末尾必须有一个分号 ;,这是新手最容易遗漏的细节。
2. 理解访问权限:public 与 private
在 C++ 中,类的成员并不是完全开放的。为了保护数据安全,我们需要控制谁能访问它们。
查看下表,了解最常用的两种访问权限的区别:
| 权限关键字 | 类内部访问 | 类外部访问 | 常见用途 |
|---|---|---|---|
public |
✅ 允许 | ✅ 允许 | 定义对外接口(如函数) |
private |
✅ 允许 | ❌ 禁止 | 保护敏感数据(如密码、核心参数) |
如果将 width 和 height 放在 private 下,你就不能在 main 函数中直接通过 rect.width = 10 来修改它,必须通过 public 里的函数来间接修改。
3. 实例化对象
定义好类(模具)之后,我们就可以根据它创建对象(产品)了。这个过程叫作“实例化”。
- 指定类名。
- 输入对象名称。
- 使用分号结束语句。
语法格式为:ClassName objectName;
继续以矩形为例:
// 根据 Rectangle 类创建一个名为 rect 的对象
Rectangle rect;
这就好比根据图纸造出了一个具体的、名为 rect 的矩形盒子。此时,rect 拥有了 width 和 height 这两个变量,但它们目前的值是未知的(随机值)。
4. 访问成员与使用对象
有了对象,我们就可以操作它的属性和行为。
使用点运算符 . 来访问对象的成员。点运算符位于对象名和成员名之间。
- 赋值成员变量:输入
rect.width = 10.0;,将宽度设为 10。 - 赋值成员变量:输入
rect.height = 5.0;,将高度设为 5。 - 调用成员函数:输入
double area = rect.getArea();,获取面积并存储到变量中。
完整操作代码片段:
rect.width = 10.0;
rect.height = 5.0;
double area = rect.getArea();
此时,变量 area 的值就是 50.0。
5. 使用构造函数进行初始化
为了避免忘记设置宽和高,或者产生随机值,我们可以在类中定义一个“构造函数”。构造函数是一种特殊的函数,它在对象创建时自动执行,且函数名必须与类名完全相同。
修改之前的 Rectangle 类定义,添加一个构造函数:
class Rectangle {
public:
double width;
double height;
// 构造函数:没有返回值,名字叫 Rectangle
Rectangle(double w, double h) {
width = w;
height = h;
}
double getArea() {
return width * height;
}
};
现在,实例化对象的方式变得更加简洁和安全:
- 创建对象时直接传入参数。
- 输入
Rectangle rect(10.0, 5.0);。
这行代码不仅创建了一个对象,还立刻把它的宽度初始化为 10,高度初始化为 5。
6. 完整代码演示与运行
将上述所有概念整合,形成一个完整的可运行程序。
复制以下代码到你的 main.cpp 文件中:
#include <iostream>
using namespace std;
class Rectangle {
public:
double width;
double height;
// 带参数的构造函数
Rectangle(double w, double h) {
width = w;
height = h;
}
double getArea() {
return width * height;
}
};
int main() {
// 1. 实例化对象:创建 rect,并初始化宽为 10,高为 5
Rectangle rect(10.0, 5.0);
// 2. 访问成员变量
cout << "矩形的宽度: " << rect.width << endl;
// 3. 调用成员函数计算面积
double area = rect.getArea();
cout << "矩形的面积: " << area << endl;
return 0;
}
保存文件并打开终端。输入编译命令:
g++ main.cpp -o main
按下回车键执行编译。如果没有报错,输入运行命令:
./main
屏幕上将输出计算结果。

暂无评论,快来抢沙发吧!