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