Dans ce code, la fonction foo de la portée globale tente d'accéder aux variables privées d'une Box, ce qui, bien sûr, ne fonctionne pas. Je dois faire en sorte que la fonction foo fonctionne avec une ligne de code au code du lieu d'une école.Accès à une variable privée dans une portée globale
#include <iostream>
using namespace std;
class Box {
int x,y;
public:
Box(int xi,int yi) {x=xi;y=yi;}
// One line of code to make foo(Box, Box) work
};
bool foo(Box l,Box r) {return (l.x*l.y)>(r.x*r.y);}
int main(int argc, char* argv[]) {
Box b1(3,4),b2(1,2);
if (foo(b1,b2)) cout << "b1>b2\n";
return cin.get();
}
Pour les questions marquées devoirs je pense qu'il est préférable de donner les conseils nécessaires sans le code exact. De cette façon, ils peuvent regarder ce que vous leur dites et en tirer des leçons au lieu de copier/coller. –
@Brian: Oui, je suis d'accord, mais je pense que ce n'est pas une raison valable pour votre downvote. –
Vous faites une supposition, je n'ai pas downvote. Vérifiez mon numéro de compte de downvotes. Je downvote rarement. J'aime laisser des commentaires à la place. Probablement l'une des personnes qui a insisté sur mon commentaire. –