Maison > développement back-end > C++ > Comment faire de la programmation orientée objet en C++ ?

Comment faire de la programmation orientée objet en C++ ?

WBOY
Libérer: 2023-08-27 08:34:51
original
884 Les gens l'ont consulté

Comment faire de la programmation orientée objet en C++ ?

Comment faire de la programmation orientée objet en C++ ?

La programmation orientée objet (POO) est un paradigme de développement logiciel très courant et important. C++ est un langage de programmation multi-paradigmes qui prend en charge la programmation orientée objet. En C++, grâce aux concepts de classe et d'objet, on peut facilement implémenter une programmation orientée objet.

Tout d'abord, nous devons définir une classe. Une classe est un type de données personnalisé qui encapsule les données membres et les fonctions membres. Les données membres décrivent les propriétés d'une classe et les fonctions membres définissent le comportement de la classe.

L'exemple suivant montre une définition de classe simple :

#include <iostream>

class Shape {
    private:
        int width;
        int height;
    
    public:
        void setWidth(int w) {
            width = w;
        }
        
        void setHeight(int h) {
            height = h;
        }
        
        int getArea() {
            return width * height;
        }
};

int main() {
    Shape rectangle;
    rectangle.setWidth(10);
    rectangle.setHeight(5);
    int area = rectangle.getArea();
    std::cout << "矩形的面积是:" << area << std::endl;
    return 0;
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons défini une classe nommée Shape. La classe Shape comporte deux données membres : width et height, qui représentent respectivement la largeur et la hauteur du rectangle. Les trois fonctions membres de la classe sont setWidth, setHeight et getArea. Les fonctions setWidth et setHeight sont utilisées pour définir la largeur et la hauteur du rectangle, tandis que la fonction getArea renvoie l'aire du rectangle.

Dans la fonction principale, nous créons un rectangle d'objet Shape et définissons sa largeur et sa hauteur en appelant les fonctions setWidth et setHeight. Enfin, nous appelons la fonction getArea pour calculer l'aire du rectangle et l'afficher sur la console.

Grâce au concept de classes, nous pouvons créer plusieurs objets pour représenter différentes instances. Chaque objet possède ses propres données membres mais partage les mêmes fonctions membres. Cela nous permet d'appeler la même fonction membre sur différents objets pour réaliser la réutilisation du code.

En plus d'encapsuler les données membres et les fonctions membres, les classes prennent également en charge l'héritage et le polymorphisme. L'héritage permet à une classe d'hériter des membres d'une autre classe, ce qui permet la réutilisation et l'extension du code. Le polymorphisme permet d'utiliser des pointeurs ou des références de la classe parent pour pointer vers des objets de la sous-classe, réalisant ainsi une programmation flexible.

L'exemple suivant montre l'utilisation de l'héritage et du polymorphisme :

#include <iostream>

class Shape {
    protected:
        int width;
        int height;

    public:
        void setWidth(int w) {
            width = w;
        }
        
        void setHeight(int h) {
            height = h;
        }
        
        virtual int getArea() = 0;
};

class Rectangle : public Shape {
    public:
        int getArea() {
            return width * height;
        }
};

class Triangle : public Shape {
    public:
        int getArea() {
            return width * height / 2;
        }
};

int main() {
    Shape* shape1 = new Rectangle();
    shape1->setWidth(10);
    shape1->setHeight(5);
    std::cout << "矩形的面积是:" << shape1->getArea() << std::endl;
    
    Shape* shape2 = new Triangle();
    shape2->setWidth(10);
    shape2->setHeight(5);
    std::cout << "三角形的面积是:" << shape2->getArea() << std::endl;
    
    delete shape1;
    delete shape2;
    
    return 0;
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons défini trois classes : Shape, Rectangle et Triangle. Les classes Rectangle et Triangle héritent de la classe Shape, ce qui signifie qu'elles héritent des fonctions setWidth, setHeight et getArea de la classe Shape. La classe Rectangle remplace la fonction getArea pour calculer l'aire d'un rectangle ; la classe Triangle remplace également la fonction getArea pour calculer l'aire d'un triangle.

Dans la fonction principale, nous créons deux pointeurs de la classe Shape, shape1 et shape2, et pointons respectivement vers les objets des classes Rectangle et Triangle. Grâce aux pointeurs shape1 et shape2, nous pouvons appeler les fonctions setWidth, setHeight et getArea. Puisque la fonction getArea est déclarée comme une fonction virtuelle pure (virtuelle) dans la classe Shape, les pointeurs shape1 et shape2 appelleront différentes fonctions getArea en fonction du type d'objet réel, réalisant ainsi le polymorphisme.

Grâce aux exemples ci-dessus, nous avons appris à effectuer une programmation orientée objet en C++ et maîtrisé les concepts de base de la définition et de l'utilisation des classes, de l'héritage et du polymorphisme. La programmation orientée objet est une méthode de programmation très puissante et flexible. Elle peut nous aider à mieux organiser et gérer le code, à améliorer l'efficacité du développement et la réutilisabilité du code. J'espère que cet article pourra vous aider à comprendre et à appliquer la programmation orientée objet !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal