Maison  >  Article  >  développement back-end  >  Incarnation des principes de conception orientée objet en C++

Incarnation des principes de conception orientée objet en C++

WBOY
WBOYoriginal
2024-06-01 21:51:001126parcourir

C++ incarne les principes de la POO, notamment : Encapsulation : utilisez des classes pour encapsuler des données et des méthodes dans des objets. Héritage : permet aux classes dérivées d'hériter des données et du comportement des classes de base. Polymorphisme : permet de changer le comportement d'un objet en fonction de son type, implémenté via des fonctions virtuelles.

Incarnation des principes de conception orientée objet en C++

Incarnation des principes de conception orientée objet en C++

La conception orientée objet (POO) est un ensemble de principes visant à réaliser un couplage lâche, une réutilisation de code et une encapsulation de données. C++ est un langage de programmation orienté objet qui adopte plusieurs principes clés de la POO.

Encapsulation

L'encapsulation fait référence à l'encapsulation de données et aux méthodes d'exploitation des données dans des objets. En C++, l'encapsulation peut être réalisée à l'aide de classes. Par exemple :

class Person {
private:
    string name;
    int age;

public:
    Person(string name, int age) : name(name), age(age) {}
    string getName() { return name; }
    int getAge() { return age; }
};

Héritage

L'héritage permet à une classe (classe dérivée) d'hériter des données et du comportement d'une autre classe (classe de base). En C++, utilisez les modificateurs d'accès public, protected et private pour contrôler l'accès aux classes dérivées aux membres de la classe de base. Par exemple : publicprotectedprivate 访问修饰符来控制派生类对基类成员的访问权限。例如:

class Student : public Person {
private:
    string major;

public:
    Student(string name, int age, string major) : Person(name, age), major(major) {}
    string getMajor() { return major; }
};

多态

多态是指对象的行为可以根据其类型而改变。在 C++ 中,可以使用虚函数来实现多态。例如:

class Animal {
public:
    virtual string makeSound() { return "Unknown"; }
};

class Dog : public Animal {
public:
    virtual string makeSound() { return "Woof"; }
};

class Cat : public Animal {
public:
    virtual string makeSound() { return "Meow"; }
};

// 实战案例

int main() {
    Animal* animals[] = { new Dog(), new Cat() };

    for (Animal* animal : animals) {
        cout << animal->makeSound() << endl;
    }

    return 0;
}

在这个例子中,Animal 类是一个基类,它定义了 makeSound() 虚函数。DogCat 类是从 Animal 类派生的派生类,它们重写了 makeSound() 方法。主函数创建了一个 Animal 数组,其中包含 DogCat 对象的指针。然后,它遍历数组并调用每个对象的 makeSound()rrreee

🎜Polymorphisme🎜🎜🎜Le polymorphisme signifie que le comportement d'un objet peut changer en fonction de son type. En C++, le polymorphisme peut être obtenu à l'aide de fonctions virtuelles. Par exemple : 🎜rrreee🎜Dans cet exemple, la classe Animal est une classe de base qui définit la fonction virtuelle makeSound(). Les classes Dog et Cat sont des classes dérivées de la classe Animal qui remplacent la méthode makeSound(). La fonction principale crée un tableau Animal contenant des pointeurs vers les objets Dog et Cat. Il parcourt ensuite le tableau et appelle la méthode makeSound() de chaque objet. Cela imprimera des sons différents selon le type d'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!

Déclaration:
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