объявление класса друга

Я новичок в программировании на C ++. Можем ли мы объявить некоторых членов класса друзьями другого класса? это означает, что у класса А есть три функции-члена, и вместо того, чтобы объявлять весь класс своим другом другого класса B (скажем), я могу объявить только одного члена класса A в качестве друга классу B, поэтому, пожалуйста, помогите.

0

Решение

Да, вы можете объявить одну функцию-член как друга другого класса.
Онлайн образец:

#include<iostream>
class Myclass;
class Otherclass
{
public:
void doSomething(Myclass &obj);

};
class Myclass
{
int i;
friend void Otherclass::doSomething(Myclass &obj);
};
void Otherclass::doSomething(Myclass &obj)
{
obj.i = 10;
std::cout<<obj.i;
}int main()
{
Myclass obj;
Otherclass obj2;
obj2.doSomething(obj);
return 0;
}
1

Другие решения

Да:

class A
{
public:
void func_1();
void func_2();
void func_3();
};

class B
{
friend void A::fund_2();
void plop(); // only A::func_2() can call this function
};
2

При объявлении класса-друга все функции-члены класса-друга становятся друзьями класса, в котором был объявлен класс-друг. источник

1

Не для того, чтобы быть грубым с вами, но посмотрите, что я нашел, просто прибегая к помощи «функций класса C ++ для друзей»:

Функции друзей и классы

…и еще около 200.

1

да.

Например, спросите вики (они знают все):

http://en.wikipedia.org/wiki/Friend_function

Или сделайте простой поиск …

-1
По вопросам рекламы [email protected]