在 C++ 中,对象和类用于将相关的函数和数据封装在一个地方。
假设我们需要存储一个矩形房间的长、宽、高,并计算其面积和体积。
为了处理这个任务,我们可以创建三个变量,例如 length、breadth 和 height,以及函数 calculate_area()
和 calculate_volume()
。
然而,在 C++ 中,我们不必创建独立的变量和函数,而是可以将相关的数据和函数封装在一个地方(通过创建**对象**)。
这种编程范式被称为面向对象编程。
但是,在 C++ 中创建**对象**并使用它们之前,我们首先需要了解**类**。
C++ 类
类是对象的蓝图。
我们可以将类看作是房屋的草图(原型)。
它包含了关于地板、门、窗户等的所有细节——我们根据这些描述来建造房屋。
房屋就是对象。
创建类
类在 C++ 中使用 关键字 class
后跟类名来定义。
类的体在花括号内定义,并在末尾以分号结束。
class ClassName {
// some data
// some functions
};
例如,
class Room {
public:
double length;
double breadth;
double height;
double calculate_area(){
return length * breadth;
}
double calculate_volume(){
return length * breadth * height;
}
};
在这里,我们定义了一个名为 Room
的类。
在类内声明的 length、breadth 和 height 变量称为**数据成员**。
而函数 calculate_area()
和 calculate_volume ()
称为类的**成员函数**。
C++ 对象
当定义了一个类后,只定义了对象的规格;没有分配内存或存储空间。
要使用类中定义的数据并访问函数,我们需要创建对象。
C++ 中定义对象的语法
ClassName object_name;
我们可以按如下方式创建 Room
类(在上面的示例中定义)的对象:
// sample function
void sample_function() {
// create objects
Room room1, room2;
}
int main(){
// create objects
Room room3, room4;
}
在这里,在 sample_function()
中创建了 Room
类的两个对象 room1 和 room2。
类似地,在 main()
中创建了对象 room3 和 room4。
正如我们所见,我们可以在程序的任何函数中创建类的对象。
我们也可以在类本身内部或在其他类中创建类的对象。
此外,我们可以从一个类创建任意数量的对象。
C++ 访问数据成员和成员函数
我们可以使用 .
(点) 运算符来访问类的 数据成员和成员函数。
例如,
room2.calculate_area();
这将调用 Room
类中对象 room2 的 calculate_area()
函数。
类似地,数据成员可以这样访问:
room1.length = 5.5;
在这种情况下,它将 room1 的 length 变量初始化为 5.5
。
示例:C++ 编程中的对象和类
// Program to illustrate the working of
// objects and class in C++ Programming
#include <iostream>
using namespace std;
// create a class
class Room {
public:
double length;
double breadth;
double height;
double calculate_area() {
return length * breadth;
}
double calculate_volume() {
return length * breadth * height;
}
};
int main() {
// create object of Room class
Room room1;
// assign values to data members
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;
// calculate and display the area and volume of the room
cout << "Area of Room = " << room1.calculate_area() << endl;
cout << "Volume of Room = " << room1.calculate_volume() << endl;
return 0;
}
输出
Area of Room = 1309 Volume of Room = 25132.8
在这个程序中,我们使用了 Room
类及其对象 room1 来计算房间的面积和体积。
在 main()
中,我们使用以下代码为 length、breadth 和 height 变量赋值:
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;
然后,我们调用 calculate_area()
和 calculate_volume()
函数来执行必要的计算。
请注意程序中 public
关键字的使用。这意味着这些成员是公共的,可以在程序中的任何地方访问。
要了解更多关于 public
和其他访问说明符的信息,请访问我们的 C++ 类访问说明符教程。
另请阅读