Classes et objets C++


C++ ajoute une programmation orientée objet basée sur le langage C. C++ prend en charge la programmation orientée objet. Les classes sont une fonctionnalité essentielle du C++ et sont souvent appelées types définis par l'utilisateur. La classe

est utilisée pour spécifier la forme d'un objet, qui contient la représentation des données et les méthodes de traitement des données. Les données et méthodes d’une classe sont appelées membres de la classe. Les fonctions d'une classe sont appelées membres de la classe.

Définition de classe C++

La définition d'une classe est essentiellement un modèle pour définir un type de données. Cela ne définit en réalité aucune donnée, mais définit ce que signifie le nom de la classe, c'est-à-dire ce que contient un objet de la classe et quelles opérations peuvent être effectuées sur cet objet.

Une définition de classe commence par le mot-clé class, suivi du nom de la classe. Le corps de la classe est entouré d’une paire d’accolades. La définition de classe doit être suivie d'un point-virgule ou d'une liste de déclarations. Par exemple, nous définissons le type de données Box à l'aide du mot-clé class comme suit :

class Box
{
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

Le mot-clé public détermine les propriétés d'accès des membres de la classe. Dans le cadre d'un objet de classe, les membres publics sont accessibles en dehors de la classe. Vous pouvez également spécifier les membres de la classe comme privés ou protégés, ce que nous expliquerons plus tard.

Définition des objets C++

Les classes fournissent le modèle des objets, donc fondamentalement, les objets sont créés en fonction des classes. Déclarez les objets d'une classe tout comme les variables de types primitifs. L'instruction suivante déclare deux objets de classe Box :

Box Box1;          // 声明 Box1,类型为 Box
Box Box2;          // 声明 Box2,类型为 Box

Les objets Box1 et Box2 ont chacun leurs propres données membres.

Accès aux données membres Les données publiques membres d'un objet de la classe

sont accessibles à l'aide de l'opérateur d'accès direct aux membres (.). Pour mieux comprendre ces concepts, essayons l'exemple suivant :

#include <iostream>

using namespace std;

class Box
{
   public:
      double length;   // 长度
      double breadth;  // 宽度
      double height;   // 高度
};

int main( )
{
   Box Box1;        // 声明 Box1,类型为 Box
   Box Box2;        // 声明 Box2,类型为 Box
   double volume = 0.0;     // 用于存储体积
 
   // box 1 详述
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 详述
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;

   // box 1 的体积
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Box1 的体积:" << volume <<endl;

   // box 2 的体积
   volume = Box2.height * Box2.length * Box2.breadth;
   cout << "Box2 的体积:" << volume <<endl;
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produira les résultats suivants :

Box1 的体积:210
Box2 的体积:1560

Il est important de noter que , les membres privés et les membres protégés ne sont pas accessibles directement à l’aide de l’opérateur d’accès direct aux membres (.). Nous apprendrons comment accéder aux membres privés et protégés dans un didacticiel ultérieur.

Explication détaillée des classes et des objets

Jusqu'à présent, nous avons une compréhension de base des classes et des objets C++. La liste suivante répertorie également d'autres concepts liés aux classes et objets C++. Vous pouvez cliquer sur le lien correspondant pour apprendre.

概念描述
类成员函数类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。
类访问修饰符类成员可以被定义为 public、private 或 protected。默认情况下是定义为 private。
构造函数 & 析构函数类的构造函数是一种特殊的函数,在创建一个新的对象时调用。类的析构函数也是一种特殊的函数,在删除所创建的对象时调用。
C++ 拷贝构造函数拷贝构造函数,是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。
C++ 友元函数友元函数可以访问类的 private 和 protected 成员。
C++ 内联函数通过内联函数,编译器试图在调用函数的地方扩展函数体中的代码。
C++ 中的 this 指针每个对象都有一个特殊的指针 this,它指向对象本身。
C++ 中指向类的指针指向类的指针方式如同指向结构的指针。实际上,类可以看成是一个带有函数的结构。
C++ 类的静态成员类的数据成员和函数成员都可以被声明为静态的。