Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan prinsip pengaturcaraan berorientasikan objek dalam reka bentuk kelas C++?
Prinsip pengaturcaraan berorientasikan objek dalam C++: Enkapsulasi: Merangkum data dan kaedah dalam entiti yang dipanggil kelas untuk melindungi data dan menggalakkan penggunaan semula kod. Warisan: membenarkan kelas terbitan mewarisi data dan kaedah daripada kelas asas, menggalakkan penggunaan semula kod dan menyatakan hubungan ibu bapa-anak. Polimorfisme: membenarkan objek dalam kelas yang berbeza untuk mempamerkan tingkah laku yang berbeza mengikut kelas yang mereka miliki, merealisasikan logik kod biasa.
Prinsip Pengaturcaraan Berorientasikan Objek dalam Reka Bentuk Kelas C++
Pengaturcaraan berorientasikan objek (OOP) ialah satu set prinsip panduan untuk mengatur dan mereka bentuk program komputer. Bahasa C++ menyokong OOP dengan baik melalui konsep kelas. Memahami prinsip OOP adalah penting untuk mereka bentuk kod C++ yang cekap, boleh diselenggara dan boleh digunakan semula.
Tiga prinsip OOP utama
Pelaksanaan dalam C++
Encapsulation:
class Person { private: int age; string name; public: void setAge(int age) { this->age = age; } void setName(string name) { this->name = name; } int getAge() const { return age; } string getName() const { return name; } };
Dalam contoh di atas, kelas Orang
merangkum umur
dan name
data dan menyediakan fungsi awam untuk mengakses dan mengubah suai data ini. Person
类封装了 age
和 name
数据,并提供了公共函数来访问和修改这些数据。
继承:
class Employee : public Person { private: int salary; public: void setSalary(int salary) { this->salary = salary; } int getSalary() const { return salary; } };
Employee
类从 Person
类继承了 age
和 name
数据,并添加了 salary
数据。这建立了 Employee
与 Person
之间的父子关系。
多态:
class Shape { public: virtual void draw() = 0; // 纯虚函数 }; class Rectangle : public Shape { public: void draw() override { cout << "Drawing a rectangle" << endl; } }; class Circle : public Shape { public: void draw() override { cout << "Drawing a circle" << endl; } };
Shape
类是基类,声明了一个纯虚函数 draw()
。Rectangle
和 Circle
类从 Shape
继承并覆盖 draw()
函数以实现特定的绘图行为。这允许使用 Shape
变量来调用 draw()
方法,并根据对象的实际类型执行正确的绘图行为。
实战案例:
考虑一个管理书籍的程序。您可以创建一个 Book
类来表示书籍的标题、作者和出版日期。然后,您可以创建 FictionBook
和 NonFictionBook
类来扩展 Book
Warisan:
🎜rrreee🎜 KelasPekerja
mewarisi data umur
dan name
daripada kelas Orang
, dan Menambah data gaji
. Ini mewujudkan hubungan ibu bapa-anak antara Pekerja
dan Orang
. 🎜🎜🎜Polymorphism: 🎜🎜rrreee🎜 Kelas Shape
ialah kelas asas dan mengisytiharkan fungsi maya tulen draw()
. Kelas Rectangle
dan Bulatan
mewarisi daripada Shape
dan mengatasi fungsi draw()
untuk melaksanakan tingkah laku lukisan tertentu. Ini membolehkan kaedah draw()
dipanggil menggunakan pembolehubah Shape
dan melakukan kelakuan lukisan yang betul berdasarkan jenis objek sebenar. 🎜🎜🎜Kes praktikal: 🎜🎜🎜Pertimbangkan program untuk menguruskan buku. Anda boleh membuat kelas Book
untuk mewakili tajuk, pengarang dan tarikh penerbitan buku. Anda kemudiannya boleh mencipta kelas Buku Fiksyen
dan Buku Bukan Fiksyen
yang melanjutkan kelas Atas ialah kandungan terperinci Bagaimana untuk melaksanakan prinsip pengaturcaraan berorientasikan objek dalam reka bentuk kelas C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!