📅  最后修改于: 2020-09-25 05:01:51             🧑  作者: Mango
在以前的教程中,我们了解了函数和变量。有时,最好将相关功能和数据放在一个地方,以便合乎逻辑且易于使用。
假设我们需要存储矩形房间的长度,宽度和高度,并计算其面积和体积。
为了处理此任务,我们可以创建三个变量,分别是length
, breadth
和breadth
以及height
和函数calculateArea()
和calculateVolume()
。
但是,在C++中,除了创建单独的变量和函数,我们还可以将这些相关的数据和函数包装在一个地方(通过创建对象 )。这种编程范例称为面向对象编程。
但是在创建对象并在C++中使用它们之前,我们首先需要了解类 。
类是对象的蓝图。
我们可以将类视为房子的草图(原型)。它包含有关地板,门,窗户等的所有详细信息。基于这些描述,我们建造了房屋。房子是对象。
在C++中,使用关键字class
及其后的类的名称定义了一个类。
类的主体在大括号内定义,并在末尾以分号终止。
class className {
// some data
// some functions
};
例如,
class Room {
public:
double length;
double breadth;
double height;
double calculateArea(){
return length * breadth;
}
double calculateVolume(){
return length * breadth * height;
}
};
在这里,我们定义了一个名为Room
的类。
在类内部声明的变量length
, breadth
和height
被称为数据成员 。并且,函数calculateArea()
和calculateVolume()
被称为类的成员函数 。
定义类时,仅定义对象的规范;没有分配内存或存储空间。
要使用该类中定义的数据和访问功能,我们需要创建对象。
className objectVariableName;
我们可以如下创建Room
类的对象(在上面的示例中定义):
// sample function
void sampleFunction() {
// create objects
Room room1, room2;
}
int main(){
// create objects
Room room3, room4;
}
在这里,两个物体room1
和room2
中的Room
类中创建sampleFunction()
类似地,对象room3
和room4
在main()
中创建。
如我们所见,我们可以在程序的任何函数中创建类的对象。我们还可以在类本身或其他类中创建类的对象。
同样,我们可以从一个类中创建任意数量的对象。
我们可以使用来访问类的数据成员和成员函数.
(点) 运算符。例如,
room2.calculateArea();
这将在Room
类中为对象room2
调用calculateArea()
函数 。
同样,可以通过以下方式访问数据成员:
room1.length = 5.5;
在这种情况下,它将把room1
的length
变量初始化为5.5
。
// Program to illustrate the working of
// objects and class in C++ Programming
#include
using namespace std;
// create a class
class Room {
public:
double length;
double breadth;
double height;
double calculateArea() {
return length * breadth;
}
double calculateVolume() {
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.calculateArea() << endl;
cout << "Volume of Room = " << room1.calculateVolume() << 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;
然后,我们调用函数calculateArea()
和calculateVolume()
来执行必要的计算。
注意在程序中使用关键字public
。这意味着成员是公开的,并且可以从程序的任何位置访问。
根据我们的需求,我们还可以使用private
关键字创建私人成员。班级的私人成员只能从班级内部访问。例如,
class Test {
private:
int a;
void function1() { }
public:
int b;
void function2() { }
}
Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.
另一方面,可以从程序中的任何位置访问b
和function2()
。
要了解有关公共和私有关键字的更多信息,请访问我们的C++类访问修饰符教程。
// Program to illustrate the working of
// public and private in C++ Class
#include
using namespace std;
class Room {
private:
double length;
double breadth;
double height;
public:
// function to initialize private variables
void getData(double len, double brth, double hgt) {
length = len;
breadth = brth;
height = hgt;
}
double calculateArea() {
return length * breadth;
}
double calculateVolume() {
return length * breadth * height;
}
};
int main() {
// create object of Room class
Room room1;
// pass the values of private variables as arguments
room1.getData(42.5, 30.8, 19.2);
cout << "Area of Room = " << room1.calculateArea() << endl;
cout << "Volume of Room = " << room1.calculateVolume() << endl;
return 0;
}
输出
Area of Room = 1309
Volume of Room = 25132.8
上面的示例与第一个示例几乎相同,除了类变量现在是私有的。
由于变量现在是私有的,因此我们不能直接从main()
访问它们。因此,使用以下代码将无效:
// invalid code
obj.length = 42.5;
obj.breadth = 30.8;
obj.height = 19.2;
相反,我们使用公共函数 getData()
通过函数参数double len
, double brth
和double hgt
初始化私有变量。
要了解有关对象和类的更多信息,请访问以下主题: