繁体   English   中英

朋友班宣言

[英]friend class declaration

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

是:

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
};

在声明朋友类时,该朋友类的所有成员函数都成为声明该朋友类的类的朋友。 资源

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

#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;
}

不必对您苛刻,而只是通过谷歌搜索“ c ++朋友类函数”就可以发现我的发现:

好友功能和类别

...还有大约200个。

是。

举个例子,问问维基(他们什么都知道):

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM