C++ 对象和类

在本文中,您将学习在C ++编程中使用对象和类。

C ++是一种多范式编程语言。意思是说,它支持不同的编程风格。

解决编程问题的一种流行方法是创建对象,即所谓的面向对象编程风格。

C ++支持面向对象(OO)的编程风格,该风格使您可以通过创建对象将复杂的问题分成较小的集合。

对象只是数据的集合和作用于这些数据的函数。

C ++类

在C ++中创建对象之前,需要定义一个类。

类是对象的蓝图。

我们可以将类视为房子的草图(原型)。它包含有关地板,门,窗户等的所有详细信息。基于这些描述,我们建造了房屋。而房子就是对象。

由于可以用相同的描述制作许多房屋,因此我们可以根据一个类创建许多对象。

如何在C ++中定义一个类?

在C ++中,使用关键字class及其后的类名定义了一个类。

类的主体在大括号内定义,并在末尾以分号结束。

class className
   {
   // 一些数据
   //一些功能
   };

示例: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 ++编程中的对象和类

// 用于说明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没有被使用,并且包含垃圾值。

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