Skip to content

Latest commit

 

History

History
227 lines (151 loc) · 5.14 KB

File metadata and controls

227 lines (151 loc) · 5.14 KB

C++ 类和对象

原文: https://www.programiz.com/cpp-programming/object-class

在本文中,您将学习在 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的类。

此类具有两个数据成员:data1data2和两个成员函数:function1()function2()


关键字:privatepublic

在上面的示例中,您可能已经注意到两个关键字:privatepublic

private关键字使数据和函数变为私有。 只能从同一类内部访问私有数据和函数。

public关键字将数据和函数公开。 公共数据和函数可以在类之外访问。

在此,data1data2是私有成员,其中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类的两个对象o1o2

在上述test中,data1data2是数据成员,并且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类下定义了两个数据成员data1data2以及两个成员函数insertIntegerData()insertFloatData()

声明了同一类的两个对象o1o2

使用以下命令为o1对象调用insertIntegerData()函数:

o1.insertIntegerData(12);

这会将对象o1data1值设置为 12。

然后,调用对象o2insertFloatData()函数,并将该函数的返回值存储在变量secondDataOfObject2中:

secondDataOfObject2 = o2.insertFloatData();

在该程序中,未使用o1data2o2data1

您还应该检查以下主题,以了解有关对象和类的更多信息: