Les fonctions membres C++ sont des fonctions définies dans une classe qui peuvent accéder aux données membres et aux variables de la classe. La programmation générique et les modèles rendent le code réutilisable et indépendant des types de données. La programmation générique permet d'écrire du code qui fonctionne avec différents types de données, tandis que les modèles permettent de créer des classes qui fonctionnent avec des fonctions membres de différents types. Pour les programmes qui doivent calculer l'aire de différentes formes, vous pouvez créer une classe AreaCalculator à l'aide de fonctions membres basées sur un modèle et fournir des sous-classes qui implémentent la fonction membre calculateArea pour chaque type de forme, tel que Rectangle et Cercle. Cette classe facilite le calcul de l'aire de différentes formes.
Explication détaillée des fonctions membres C++ : programmation générique et modèles de méthodes objet
En C++, les fonctions membres sont des fonctions définies à l'intérieur d'une classe et peuvent accéder aux données membres et aux variables membres de la classe. La programmation générique et les modèles sont des techniques puissantes en C++ qui vous permettent d'écrire du code réutilisable et indépendant des types de données.
Programmation générique
Le code générique vous permet d'écrire des fonctions pouvant être utilisées sur différents types de données. Cela élimine le besoin d’écrire des fonctions distinctes pour chaque type de données.
template<typename T> T max(T a, T b) { return a > b ? a : b; }
La fonction max
peut être utilisée avec n'importe quel type de données T
. max
函数可用于任何数据类型 T
。
模板化
模板化允许您创建可用于不同类型成员函数的类。通过使用模板,您可以避免为每个成员函数编写重复的代码。
template<typename T> class Vector { public: Vector() : x(0), y(0), z(0) {} Vector(T x, T y, T z) : x(x), y(y), z(z) {} T x, y, z; };
此 Vector
类可以存储任何类型的值。
实战案例
假设您想创建一个计算各种形状面积的程序。您可以使用模板化成员函数创建可用于不同形状类型的 AreaCalculator
类。
template<typename Shape> class AreaCalculator { public: double area(const Shape& shape) { // 根据形状类型计算面积 return shape.calculateArea(); } };
对于每个形状类型,您需要提供实现 calculateArea
成员函数的 Shape
子类。
class Rectangle { public: double width, height; double calculateArea() { return width * height; } }; class Circle { public: double radius; double calculateArea() { return PI * radius * radius; } };
现在,您可以使用 AreaCalculator
AreaCalculator<Rectangle> rectangleCalculator; double rectangleArea = rectangleCalculator.area(Rectangle{3.0, 4.0}); AreaCalculator<Circle> circleCalculator; double circleArea = circleCalculator.area(Circle{2.0});
Vector
peut stocker tout type de valeur. 🎜🎜🎜Cas pratique🎜🎜🎜Supposons que vous souhaitiez créer un programme qui calcule l'aire de différentes formes. Vous pouvez utiliser des fonctions membres basées sur un modèle pour créer des classes AreaCalculator
qui peuvent être utilisées pour différents types de forme. 🎜rrreee🎜Pour chaque type de forme, vous devez fournir une sous-classe Shape
qui implémente la fonction membre calculateArea
. 🎜rrreee🎜Vous pouvez maintenant calculer l'aire de n'importe quelle forme à l'aide de AreaCalculator
: 🎜rrreeeCe 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!