C++ 类和对象

  • 类和对象

    C++语言的主要目的是向C编程语言添加面向对象,而类是C++的主要功能,它支持面向对象的编程,通常称为用户定义类型。一个类用于指定对象的形式,它将数据表示形式和用于将该数据处理到一个整齐的包中的方法结合在一起。类中的数据和函数称为该类的成员。
  • C++类定义

    定义类时,将为数据类型定义一个蓝图。这实际上并没有定义任何数据,但是确实定义了类名的含义,即,类的对象将由什么组成,以及可以对该对象执行什么操作。类定义以关键字class开头,后跟类名。和类体,用大括号括起来。类定义之后必须是分号或声明列表。例如,我们使用关键字类定义Box数据类型,如下所示:
    
    class Box {
       public:
          double length;   // Length of a box
          double breadth;  // Breadth of a box
          double height;   // Height of a box
    };
    
    关键字public确定了紧随其后的类的成员的访问属性。可以从类外部在类对象范围内的任何位置访问公共成员。您还可以将类的成员指定为私有成员或受保护成员,我们将在小节中讨论。
  • 定义C++对象

    类提供对象的蓝图,因此基本上是从类创建对象的。我们使用与声明基本类型的变量完全相同的声明类型来声明类的对象。以下语句声明Box类的两个对象-
    
    Box Box1;          // Declare Box1 of type Box
    Box Box2;          // Declare Box2 of type Box
    
    对象Box1和Box2都将拥有自己的数据成员副本。
  • 访问数据成员

    可以使用直接成员访问运算符(.)访问类对象的公共(public)数据成员。让我们尝试以下示例以使事情变得清晰起来-
    
    #include <iostream>
    
    using namespace std;
    
    class Box {
       public:
          double length;   // Length of a box
          double breadth;  // Breadth of a box
          double height;   // Height of a box
    };
    
    int main() {
       Box Box1;        // Declare Box1 of type Box
       Box Box2;        // Declare Box2 of type Box
       double volume = 0.0;     // Store the volume of a box here
     
       // box 1 specification
       Box1.height = 5.0; 
       Box1.length = 6.0; 
       Box1.breadth = 7.0;
    
       // box 2 specification
       Box2.height = 10.0;
       Box2.length = 12.0;
       Box2.breadth = 13.0;
       
       // volume of box 1
       volume = Box1.height * Box1.length * Box1.breadth;
       cout << "Volume of Box1 : " << volume << endl;
    
       // volume of box 2
       volume = Box2.height * Box2.length * Box2.breadth;
       cout << "Volume of Box2 : " << volume << endl;
       return 0;
    }
    
    尝试一下
    上面的代码编译并执行后,返回以下结果-
    
    Volume of Box1 : 210
    Volume of Box2 : 1560
    
    重要的是要注意,不能使用直接成员访问运算符(.)直接访问私有(private)成员和受保护(protected)成员。我们将学习如何访问私有成员和受保护成员。