Je suis un peu nouveau en C++ et je dois résoudre l'exercice suivant :
Je dois créer un objet de la classe Sum(limit) où l'utilisateur peut entrer des nombres jusqu'à ce que la somme de toutes les entrées atteigne la limite.
La fonction principale doit ressembler à ceci et ne peut pas être modifiée :
int main (){
Sum sum(100);
std::cout << "Enter numbers\n";
do{
std::cin >> sum;
} while (!sum.exceededlimit());
std::cout << "The sum of all the components is : " << sum() << "\n";
return 0;
}
J'ai donc créé la classe dans laquelle j'ai mis un vecteur vide. Pour l'instant, le problème que j'ai est de savoir comment surcharger l'opérateur d'entrée pour que l'entrée puisse aller directement dans le vecteur de l'objet.
C'est ce que j'ai essayé jusqu'à présent (je n'ai pas essayé la partie limite, j'essaie juste d'ajouter une entrée à un vecteur pour l'instant) mais il semble y avoir un problème avec input>>c.newnumber(input) ;
Merci beaucoup si vous prenez le temps de m'aider.
Code :
#include <iostream>
#include <vector>
class Sum {
private:
int limit;
public:
std::vector<int> vect;
int newnumber(int x){
vect.push_back(x);}
Sum(int x);
};
std::istream & operator>>(std::istream &input, Sum & c){
input>>c.newnumber(input);
return input;
}
Sum::Sum(int x) {
limit=x;
}
int main () {
Sum sum(100);
std::cin >> sum;
std::cin >> sum;
std::cin >> sum;
std::cin >> sum;
std::cin >> sum;
return 0;
}