在本文中,您将学习在 C++ 编程中使用对象和类。
C++ 是一种多范式编程语言。 意思是说,它支持不同的编程风格。
解决编程问题的一种流行方法是创建对象,即所谓的面向对象编程风格。
C++ 支持面向对象(OO)的编程风格,该风格允许您通过创建对象将复杂的问题分成较小的集合。
对象只是数据的集合和作用于这些数据的函数。
C++ 类
在 C++ 中创建对象之前,需要定义一个类。
类是对象的蓝图。
我们可以将类视为房子的草图(原型)。 它包含有关地板,门,窗户等的所有详细信息。基于这些描述,我们建造了房屋。 房子是对象。
由于可以用相同的描述制作许多房屋,因此我们可以根据一个类创建许多对象。
如何在 C++ 中定义一个类?
使用关键字class
在 C++ 中定义一个类,后跟类名。
类的主体在大括号内定义,并在末尾以分号结束。
class className
{
// some data
// some functions
};
示例:C++ 中的类
class Test
{
private:
int data1;
float data2;
public:
void function1()
{ data1 = 2; }
float function2()
{
data2 = 3.5;
return data2;
}
};
在这里,我们定义了一个名为Test
的类。
此类具有两个数据成员:data1
和data2
和两个成员函数:function1()
和function2()
。
关键字:private
和public
在上面的示例中,您可能已经注意到两个关键字:private
和public
。
private
关键字使数据和函数变为私有。 只能从同一类内部访问私有数据和函数。
public
关键字将数据和函数公开。 公共数据和函数可以在类之外访问。
在此,data1
和data2
是私有成员,其中function1()
和function2()
是公共成员。
如果尝试从类外部访问私有数据,则编译器将引发错误。 OOP 中的此功能称为数据隐藏。
C++ 对象
定义类时,仅定义对象的规范; 没有分配内存或存储空间。
要使用该类中定义的数据和访问函数,您需要创建对象。
在 C++ 中定义对象的语法
className objectVariableName;
您可以如下创建Test
类的对象(在上面的示例中定义):
class Test
{
private:
int data1;
float data2;
public:
void function1()
{ data1 = 2; }
float function2()
{
data2 = 3.5;
return data2;
}
};
int main()
{
Test o1, o2;
}
在此,创建了test
类的两个对象o1
和o2
。
在上述test
中,data1
和data2
是数据成员,并且function1()
和function2()
是成员函数。
如何在 C++ 中访问数据成员和成员函数?
您可以使用来访问数据成员和成员函数。 (点)运算符。 例如,
o2.function1();
这将在Test
类中为对象o2
调用function1()
函数。
同样,可以通过以下方式访问数据成员:
o1.data2 = 5.5;
重要的是要注意,只能从类内部访问私有成员。
因此,您可以在以上示例中的任何函数或类中使用o2.function1();
。 但是,代码o1.data2 = 5.5;
应该始终位于类Test
中。
示例:C++ 编程中的对象和类
// Program to illustrate the working of objects and class in C++ Programming
#include <iostream>
using namespace std;
class Test
{
private:
int data1;
float data2;
public:
void insertIntegerData(int d)
{
data1 = d;
cout << "Number: " << data1;
}
float insertFloatData()
{
cout << "\nEnter data: ";
cin >> data2;
return data2;
}
};
int main()
{
Test o1, o2;
float secondDataOfObject2;
o1.insertIntegerData(12);
secondDataOfObject2 = o2.insertFloatData();
cout << "You entered " << secondDataOfObject2;
return 0;
}
输出
Number: 12
Enter data: 23.3
You entered 23.3
在此程序中,在test
类下定义了两个数据成员data1
和data2
以及两个成员函数insertIntegerData()
和insertFloatData()
。
声明了同一类的两个对象o1
和o2
。
使用以下命令为o1
对象调用insertIntegerData()
函数:
o1.insertIntegerData(12);
这会将对象o1
的data1
值设置为 12。
然后,调用对象o2
的insertFloatData()
函数,并将该函数的返回值存储在变量secondDataOfObject2
中:
secondDataOfObject2 = o2.insertFloatData();
在该程序中,未使用o1
的data2
和o2
的data1
。
您还应该检查以下主题,以了解有关对象和类的更多信息: