Salut J'essaie de comprendre la portée des fonctions ami et j'obtiens une erreur "non déclaré dans la portée". Voici mon code:La fonction ami n'est pas déclarée dans cette erreur d'erreur
//node.h
class Node{
public:
int id;
int a;
int b;
friend int add(int,int);
void itsMyLife(int);
Node();
};
//node.cpp
Node::Node(){
a=0;
b=0;
id=1;
}
void Node::itsMyLife(int x){
cout<<"In object "<<id<<" add gives "<<add(x,a)<<endl;
}
//routing.cpp
#include "node.h"
int add(int x, int y){
return x+y;
}
//main.cpp
#include "node.h"
int main(){
return 0;
}
Je reçois l'erreur "ajouter non déclaré dans cette portée" dans node.cpp. Pourquoi ai-je cette erreur lorsque j'ai déclaré la fonction dans la portée de la classe? Toute aide serait appréciée. Merci
AFAIK déclaration d'ami est également une déclaration avant. Si j'ai raison, il ne devrait pas y avoir d'erreur. Peut-être le voit-il comme dans la portée de la classe (bien que cela n'ait pas beaucoup de sens pour une fonction ami), essayez d'ajouter: avant d'ajouter dans la déclaration d'ami pour déclarer qu'il est dans la portée globale. Peut-être que ça va aider. – selalerer
En fait, le problème disparaît si je définis la fonction add dans node.cpp. Mais je veux le définir dans un fichier séparé. Comment puis je faire ça? – user2105632