Maison  >  Article  >  développement back-end  >  Comment le polymorphisme prend-il en charge la délégation et la gestion des événements en C++ ?

Comment le polymorphisme prend-il en charge la délégation et la gestion des événements en C++ ?

WBOY
WBOYoriginal
2024-06-03 16:58:01714parcourir

Le polymorphisme C++ est implémenté via des fonctions virtuelles et une liaison dynamique, prenant en charge la délégation et la gestion des événements. Les délégués permettent aux objets d'appeler des méthodes de classe de base via des objets de sous-classe, souvent utilisés dans les fonctions de rappel. La gestion des événements utilise des délégués pour exécuter du code lorsqu'un événement spécifique se produit. Cet article fournit deux exemples : l'exemple de délégué montre une fonction de sous-classe appelée via un pointeur de classe de base, et l'exemple de gestion d'événements gère les événements de clic de bouton via un écouteur de bouton.

C++ 中多态性如何支持委托和事件处理?

Polymorphisme en C++ : délégation et gestion des événements

Le polymorphisme est une fonctionnalité importante dans la programmation orientée objet qui permet d'appeler des méthodes de classe de base via des objets de sous-classe. En C++, le polymorphisme est obtenu grâce à des fonctions virtuelles et à des liaisons dynamiques.

Delegate

Delegate est un mécanisme de communication inter-objet qui permet à un objet de déléguer certaines tâches ou comportements à un autre objet. Les délégués sont souvent utilisés pour implémenter des fonctions de rappel, où un objet appelle une fonction d'un autre objet et attend sa réponse.

L'exemple de code C++ suivant montre comment implémenter la délégation à l'aide du polymorphisme :

#include <iostream>

using namespace std;

class Base {
public:
  virtual void print() const { cout << "Base" << endl; }
};

class Derived : public Base {
public:
  void print() const override { cout << "Derived" << endl; }
};

int main() {
  Base* b = new Derived();  // 多态性:Base 指针可以指向 Derived 对象
  b->print();  // 调用派生类函数
  return 0;
}

Gestion des événements

La gestion des événements implique l'exécution de certains codes lorsqu'un événement spécifique se produit sur un objet. En C++, la gestion des événements peut être implémentée à l'aide de délégués.

Les exemples de code C++ suivants montrent comment utiliser le polymorphisme pour implémenter la gestion des événements :

#include <iostream>

using namespace std;

class Button {
public:
  void click() const { if (_listener) _listener->buttonClicked(); }
  void setListener(ButtonListener* listener) { _listener = listener; }
private:
  ButtonListener* _listener = nullptr;
};

class ButtonListener {
public:
  virtual void buttonClicked() {}
};

class Form {
public:
  Form() : _button(new Button()) {}
  void setButtonListener(ButtonListener* listener) { _button->setListener(listener); }
private:
  Button* _button;
};

class MyListener : public ButtonListener {
public:
  void buttonClicked() override { cout << "Button clicked!" << endl; }
};

int main() {
  Form form;
  form.setButtonListener(new MyListener());
  form._button->click();
  return 0;
}

J'espère que ces exemples vous aideront à comprendre comment le polymorphisme prend en charge la délégation et la gestion des événements en C++.

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