Я новичок в программировании на C ++. Можем ли мы объявить некоторых членов класса друзьями другого класса? это означает, что у класса А есть три функции-члена, и вместо того, чтобы объявлять весь класс своим другом другого класса B (скажем), я могу объявить только одного члена класса A в качестве друга классу B, поэтому, пожалуйста, помогите.
Да, вы можете объявить одну функцию-член как друга другого класса.
Онлайн образец:
#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;
}
Да:
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
};
При объявлении класса-друга все функции-члены класса-друга становятся друзьями класса, в котором был объявлен класс-друг. источник
Не для того, чтобы быть грубым с вами, но посмотрите, что я нашел, просто прибегая к помощи «функций класса C ++ для друзей»:
…и еще около 200.
да.
Например, спросите вики (они знают все):
http://en.wikipedia.org/wiki/Friend_function
Или сделайте простой поиск …