Advertisement
fcamuso

C++ 20 - lezione 8

Oct 30th, 2022
1,169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <compare>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. class FondoInvestimento {
  8. public:
  9.     FondoInvestimento(std::string nome, double capitalizzazione) :
  10.         nome(nome), capitalizzazione(capitalizzazione) {}
  11.  
  12.     std::string getNome() const { return nome; }
  13.     double getCapitalizzazione() const { return capitalizzazione; }
  14.  
  15. private:
  16.     double capitalizzazione = 0;
  17.     std::string nome = "";
  18.  
  19. };
  20.  
  21.  
  22. // SPACESHIP OPERATOR: <=>
  23. class Cliente {
  24.     public:
  25.         Cliente(string rs, double fatt) : ragione_sociale(rs), fatturato(fatt) {}
  26.  
  27.         //auto operator<=>(const Cliente& operando_a_destra) const {                
  28.         //  return fatturato <=> operando_a_destra.fatturato;
  29.         //}
  30.  
  31.         auto operator<=>(const Cliente& operando_a_destra) const = default;
  32.        
  33.  
  34.         string getRagioneSociale() const { return ragione_sociale; }
  35.  
  36.         //explicit Cliente(FondoInvestimento& fondo) :
  37.         //  ragione_sociale(fondo.getNome()), fatturato(fondo.getCapitalizzazione()) {}
  38.  
  39.        
  40.  
  41.         //bool operator > (const Cliente& operando_a_destra) const {
  42.         //  return fatturato > operando_a_destra.fatturato;
  43.         //}
  44.  
  45.         //bool operator >= (const Cliente& operando_a_destra) const {
  46.         //  return fatturato >= operando_a_destra.fatturato;
  47.         //}
  48.  
  49.         //bool operator < (const Cliente& operando_a_destra) const {
  50.         //  return fatturato < operando_a_destra.fatturato;
  51.         //}
  52.  
  53.         //bool operator <= (const Cliente& operando_a_destra) const {
  54.         //  return fatturato <= operando_a_destra.fatturato;
  55.         //}
  56.  
  57.         //bool operator == (const Cliente& operando_a_destra) const {
  58.         //  return fatturato == operando_a_destra.fatturato;
  59.         //}
  60.  
  61.         //bool operator != (const Cliente& operando_a_destra) const {
  62.         //  return fatturato != operando_a_destra.fatturato;
  63.         //}
  64.  
  65.     private:
  66.         std::string ragione_sociale = "";
  67.         double fatturato = 0;
  68.    
  69.        
  70. };
  71.  
  72.  
  73. int main()
  74. {
  75.     Cliente cli1 {"Paperone", 999999999 };
  76.     Cliente cli2 { "Paperone", 13 };
  77.     FondoInvestimento fondo1{ "Blackrock", 800000000000 };
  78.  
  79.     //cli1>fondo1
  80.     //fondo1>cli1
  81.  
  82.     //l'essenza di qualunque algoritmo di sort e' il confronto tra due
  83.     //elementi per decidere il minore o maggiore
  84.     //if (cli1 > cli2)
  85.     //  cout << "Il cliente con maggior fatturato e' " << cli1.getRagioneSociale() << endl;
  86.     //else if (cli1 < cli2)
  87.     //  cout << "Il cliente con maggior fatturato e' " << cli2.getRagioneSociale() << endl;
  88.     //else
  89.     //  cout << "Il fatturato e' uguale\n";
  90.  
  91.  
  92.     if (cli1 > cli2)
  93.         cout << "Il cliente con maggior fatturato e' il primo\n";
  94.     else if (cli1 < cli2)
  95.         cout << "Il cliente con maggior fatturato e' il secondo\n";
  96.     else
  97.         cout << "Il fatturato e' uguale\n";
  98.  
  99.     /*cout << "Il 'cliente' con maggior fatturato e' "
  100.         << (cli1 > (Cliente)fondo1 ? cli1.getRagioneSociale() : fondo1.getNome()) << endl;*/
  101.  
  102. }
  103.  
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement