0

我是 C++ 编程的新手,我们可以将类的一些成员声明为其他类的朋友吗?这意味着假设 A 类有三个成员函数,而不是将整个类声明为其他 B 类的朋友(比如说),我可以只将 A 类的一个成员声明为 B 类的朋友,所以请帮忙。

4

5 回答 5

2

是的:

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
};
于 2013-02-05T06:02:30.917 回答
1

在声明友元类时,友元类的所有成员函数都成为声明友元类的类的友元。来源

于 2013-02-05T04:52:46.143 回答
1

是的,您可以将单个成员函数声明为另一个类的朋友。
在线样品

#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;
}
于 2013-02-05T04:52:49.857 回答
1

不要对你苛刻,但看看我通过谷歌搜索“c++朋友类函数”找到了什么:

朋友函数和类

...还有大约 200 个。

于 2013-02-05T04:54:03.237 回答
-1

是的。

例如,询问 wiki(他们什么都知道):

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

或者做一个基本的搜索......

于 2013-02-05T04:56:38.680 回答