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

Penjelmaan prinsip reka bentuk berorientasikan objek dalam C++

WBOY
Lepaskan: 2024-06-01 21:51:00
asal
1154 orang telah melayarinya

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; }
};
Salin selepas log masuk

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; }
};
Salin selepas log masuk

多态

多态是指对象的行为可以根据其类型而改变。在 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;
}
Salin selepas log masuk

在这个例子中,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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan