Rumah >pembangunan bahagian belakang >C++ >Penjelmaan prinsip reka bentuk berorientasikan objek dalam C++

Penjelmaan prinsip reka bentuk berorientasikan objek dalam C++

WBOY
WBOYasal
2024-06-01 21:51:001158semak imbas

C++ merangkumi prinsip OOP, termasuk: Enkapsulasi: Gunakan kelas untuk merangkum data dan kaedah dalam objek. Warisan: Membenarkan kelas terbitan mewarisi data dan tingkah laku daripada kelas asas. Polimorfisme: membenarkan tingkah laku objek berubah bergantung pada jenisnya, dilaksanakan melalui fungsi maya.

Penjelmaan prinsip reka bentuk berorientasikan objek dalam C++

Penjelmaan prinsip reka bentuk berorientasikan objek dalam C++

Reka bentuk berorientasikan objek (OOP) ialah satu set prinsip yang bertujuan untuk mencapai gandingan longgar, penggunaan semula kod dan enkapsulasi data. C++ ialah bahasa pengaturcaraan berorientasikan objek yang menggunakan beberapa prinsip OOP utama.

Encapsulation

Encapsulation merujuk kepada merangkum data dan kaedah pengendalian data dalam objek. Dalam C++, enkapsulasi boleh dicapai menggunakan kelas. Contohnya:

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; }
};

Warisan

Warisan membenarkan satu kelas (kelas terbitan) mewarisi data dan gelagat daripada kelas lain (kelas asas). Dalam C++, gunakan pengubah suai akses awam, protected dan private untuk mengawal akses kelas yang diperoleh kepada ahli kelas asas. Contohnya: 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

🎜Polymorphism🎜🎜🎜Polymorphism bermaksud tingkah laku sesuatu objek boleh berubah bergantung pada jenisnya. Dalam C++, polimorfisme boleh dicapai menggunakan fungsi maya. Contohnya: 🎜rrreee🎜Dalam contoh ini, kelas Animal ialah kelas asas yang mentakrifkan fungsi maya makeSound(). Kelas Anjing dan Cat ialah kelas terbitan yang diperoleh daripada kelas Animal yang mengatasi kaedah makeSound(). Fungsi utama mencipta tatasusunan Haiwan yang mengandungi penunjuk kepada objek Anjing dan Cat. Ia kemudian melelar melalui tatasusunan dan memanggil kaedah makeSound() setiap objek. Ini akan mencetak bunyi yang berbeza bergantung pada jenis objek. 🎜

Atas ialah kandungan terperinci Penjelmaan prinsip reka bentuk berorientasikan objek dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn