Warisan fungsi membolehkan kelas terbitan mengatasi fungsi kelas asas untuk mengelakkan pertindihan kod. Kaedah pelaksanaan: Gunakan kata kunci ganti sebelum fungsi kelas terbitan. Kes praktikal: Dalam seni bina pemalam, kelas pemalam berfungsi sebagai kelas asas, dan kelas terbitan menyediakan pelaksanaan pemalam Pemalam dimuatkan secara dinamik dan dijalankan melalui kelas PluginManager.
Warisan fungsi membolehkan anda mewarisi fungsi kelas asas.dengan mengelak pertindihan kelas yang diperolehi, di sana Fungsi kelas terbitan akan mengatasi fungsi kelas asas, yang bermaksud bahawa fungsi kelas terbitan akan dipanggil pada masa jalan dan bukannya fungsi kelas asas.
Untuk melaksanakan warisan fungsi, anda perlu menggunakan kata kunci override
dalam takrif kelas bagi kelas terbitan untuk mengatasi fungsi kelas asas. Contohnya: override
关键字来覆盖基类的函数。例如:
class Base { public: virtual void print() { std::cout << "Base class print" << std::endl; } }; class Derived : public Base { public: virtual void print() override { std::cout << "Derived class print" << std::endl; } };
函数继承在创建插拔式架构时非常有用。在插拔式架构中,您可以在运行时加载和卸载不同的模块或组件。这在需要动态更改应用程序功能或提供可定制的扩展程序时非常有用。
以下是一个使用函数继承实现插拔式架构的示例:
class Plugin { public: virtual void init() = 0; virtual void run() = 0; virtual void terminate() = 0; }; class PluginA : public Plugin { public: void init() override {} void run() override { std::cout << "Plugin A is running" << std::endl; } void terminate() override {} }; class PluginB : public Plugin { public: void init() override {} void run() override { std::cout << "Plugin B is running" << std::endl; } void terminate() override {} }; class PluginManager { public: std::vector<std::unique_ptr<Plugin>> plugins; void loadPlugin(std::unique_ptr<Plugin> plugin) { plugins.push_back(std::move(plugin)); } void runPlugins() { for (auto& plugin : plugins) { plugin->run(); } } };
在这个例子中,Plugin
类充当基类,定义了插件的接口(init()
, run()
, terminate()
)。PluginA
和 PluginB
是派生类,提供实际的插件实现。PluginManager
rrreee
Plugin
bertindak sebagai kelas asas dan mentakrifkan antara muka pemalam (init(), run()
, terminate()
). PluginA
dan PluginB
ialah kelas terbitan yang menyediakan pelaksanaan pemalam sebenar. Kelas PluginManager
bertanggungjawab untuk mengurus pemalam, membolehkannya dimuatkan dan dijalankan secara dinamik. 🎜Atas ialah kandungan terperinci Penjelasan terperinci tentang warisan fungsi C++: Bagaimana untuk menggunakan warisan untuk melaksanakan seni bina boleh pasang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!