Дружественный метод класса: E0265 член "A::x" недоступно
Ошибка (активно) E0265 член "A::x" (объявлено в строке 9) недоступно ;
Почему функция становиться дружественной, а методу другого класса другом стать не выходит?
#include <iostream>
using namespace std;
class B;
class A {
private:
int x = 1;
friend void B::Take(A& b);
friend void take(A& b);
};
void take(A& b) {
cout << b.x << endl;
}
class B {
public:
void Take(A& b) {
cout << b.x << endl;
}
};
int main()
{
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
А откуда в строке friend void B::Take(A& b);
известно, что вообще существует B::Take
? Правильно располагайте объявление...
class A;
class B {
public:
void Take(A& b);
};
class A {
private:
int x = 1;
friend void B::Take(A& b);
friend void take(A& b);
};
void take(A& b) {
cout << b.x << endl;
}
void B::Take(A& b)
{
cout << b.x << endl;
}
int main()
{
}