Supposons que nous devions définir une classe de boîte avec quelques conditions. Comme suit -
Les trois attributs l, b et h représentent respectivement la longueur, la largeur et la hauteur (ce sont des variables privées)
Définissez un constructeur non paramétrique pour définir l, b, h à 0 et définissez un constructeur paramétré pour définir initialement les valeurs.
Définir la méthode getter de chaque attribut
Définir une fonction calculateVolume() pour obtenir le volume de la boîte
L'opérateur Surchargé inférieur à (
Créez une variable qui compte le nombre de cases créées.
Donc, si nous entrons trois cases (0, 0, 0) (5, 8, 3), (6, 3, 8) et affichons les données pour chaque case et vérifions si la troisième case est plus petite Est-ce la petite une plus grande que la seconde, trouvez le volume de la plus petite boîte et imprimez le nombre de boîtes dont elle dispose en comptant la variable.
Ensuite, la sortie sera
Box 1: (length = 0, breadth = 0, width = 0) Box 2: (length = 5, breadth = 8, width = 3) Box 3: (length = 6, breadth = 3, width = 8) Box 3 is smaller, its volume: 120 There are total 3 box(es)
Pour résoudre ce problème, nous suivrons les étapes suivantes-
Pour calculer le volume que nous devons retourner l*b*h
li>Pour surcharger le moins de (<) opérateur , nous devons vérifier si <) 运算符,我们必须检查
le l de l'objet actuel est différent du l étant donné un autre objet, puis
renvoie vrai si le l de l'objet actuel est inférieur au l de l'autre objet
else , lorsque le b de l'objet actuel est différent du b donné d'un autre objet, alors
renvoie vrai si le b de l'objet actuel est plus petit que le b de l'autre objet
Sinon, lorsque l'objet actuel Quand h est différent de h étant donné un autre objet, alors
Renvoie vrai si h de l'objet actuel est inférieur à h d'un autre objet
Regardons l'implémentation suivante pour une meilleure compréhension -
#include <iostream> using namespace std; class Box { int l, b, h; public: static int count; Box() : l(0), b(0), h(0) { count++; } Box(int length, int breadth, int height) : l(length), b(breadth), h(height) { count++; } int getLength() const {return l;} int getBreadth() const {return b;} int getHeight() const {return h;} long long CalculateVolume() const { return 1LL * l * b * h; } bool operator<(const Box& another) const { if (l != another.l) { return l < another.l; } if (b != another.b) { return b < another.b; } return h < another.h; } }; int Box::count = 0; int main(){ Box b1; Box b2(5,8,3); Box b3(6,3,8); printf("Box 1: (length = %d, breadth = %d, width = %d)\n",b1.getLength(), b1.getBreadth(), b1.getHeight()); printf("Box 2: (length = %d, breadth = %d, width = %d)\n",b2.getLength(), b2.getBreadth(), b2.getHeight()); printf("Box 3: (length = %d, breadth = %d, width = %d)\n",b3.getLength(), b3.getBreadth(), b3.getHeight()); if(b3 < b2){ cout << "Box 3 is smaller, its volume: " << b3.CalculateVolume() << endl; }else{ cout << "Box 3 is smaller, its volume: " << b2.CalculateVolume() << endl; } cout << "There are total " << Box::count << " box(es)"; }
b1; b2(5,8,3); b3(6,3,8);
Box 1: (length = 0, breadth = 0, width = 0) Box 2: (length = 5, breadth = 8, width = 3) Box 3: (length = 6, breadth = 3, width = 8) Box 3 is smaller, its volume: 120 There are total 3 box(es)
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!