💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# C++ 类和对象 > 原文: [https://www.programiz.com/cpp-programming/object-class](https://www.programiz.com/cpp-programming/object-class) #### 在本文中,您将学习在 C++ 编程中使用对象和类。 C++ 是一种多范式编程语言。 意思是说,它支持不同的编程风格。 解决编程问题的一种流行方法是创建对象,即所谓的面向对象编程风格。 C++ 支持面向对象(OO)的编程风格,该风格允许您通过创建对象将复杂的问题分成较小的集合。 对象只是数据的集合和作用于这些数据的函数。 * * * ## C++ 类 在 C++ 中创建对象之前,需要定义一个类。 类是对象的蓝图。 我们可以将类视为房子的草图(原型)。 它包含有关地板,门,窗户等的所有详细信息。基于这些描述,我们建造了房屋。 房子是对象。 由于可以用相同的描述制作许多房屋,因此我们可以根据一个类创建许多对象。 * * * ### 如何在 C++ 中定义一个类? 使用关键字`class`在 C++ 中定义一个类,后跟类名。 类的主体在大括号内定义,并在末尾以分号结束。 ```cpp class className { // some data // some functions }; ``` * * * ### 示例:C++ 中的类 ```cpp 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++ 中定义对象的语法 ```cpp className objectVariableName; ``` 您可以如下创建`Test`类的对象(在上面的示例中定义): ```cpp 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++ 中访问数据成员和成员函数? 您可以使用来访问数据成员和成员函数。 (点)运算符。 例如, ```cpp o2.function1(); ``` 这将在`Test`类中为对象`o2`调用`function1()`函数。 同样,可以通过以下方式访问数据成员: ```cpp o1.data2 = 5.5; ``` 重要的是要注意,只能从类内部访问私有成员。 因此,您可以在以上示例中的任何函数或类中使用`o2.function1();`。 但是,代码`o1.data2 = 5.5;`应该始终位于类`Test`中。 * * * ### 示例:C++ 编程中的对象和类 ```cpp // 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; } ``` **输出** ```cpp Number: 12 Enter data: 23.3 You entered 23.3 ``` 在此程序中,在`test`类下定义了两个数据成员`data1`和`data2`以及两个成员函数`insertIntegerData()`和`insertFloatData()`。 声明了同一类的两个对象`o1`和`o2`。 使用以下命令为`o1`对象调用`insertIntegerData()`函数: ```cpp o1.insertIntegerData(12); ``` 这会将对象`o1`的`data1`值设置为 12。 然后,调用对象`o2`的`insertFloatData()`函数,并将该函数的返回值存储在变量`secondDataOfObject2`中: ```cpp secondDataOfObject2 = o2.insertFloatData(); ``` 在该程序中,未使用`o1`的`data2`和`o2`的`data1`。 您还应该检查以下主题,以了解有关对象和类的更多信息: * [C++ 构造器](/cpp-programming/constructors "C++ constructors") * [如何从函数传递和返回对象?](/cpp-programming/pass-return-object-function)