J'essaie de me lier d'amitié avec une classe pour qu'elle puisse en atteindre un constructeur privé.Se lier d'amitié avec une classe
Dans some_file.h
class B;
namespace some_name {
class A {
public:
A() {}
private:
A (int x) {}
friend class ::B;
};
}
Dans other_file.h
#include "some_file"
namespace {
class B {
protected:
A* get_a(int x) { return new A(x); }
};
}
Lors de la compilation de ce code, je reçois - erreur: 'some_name :: A :: A (int)' est privé.
Je maintenant, c'est privé, c'est pourquoi je me suis lié d'amitié avec B. Qu'est-ce que je fais mal ici? Ne pouvez-vous pas vous lier d'amitié avec votre constructeur? Y a-t-il un problème d'espace de noms?
Merci
Pour lier d'amitié avec d'autres classes, simplement don d'un chapeau haut, ont une canne de marche qui vous pratiquiez en virevoltant, et quelques belles chaussures avec l'odeur fraîche du cuir . "Voilà l'homme qui a le scintillement dans les yeux!" les gens vont commenter, ouvrant la porte à de nouvelles opportunités avec de nouvelles classes. –
@Tom: Êtes-vous élevé? – ereOn