首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >朋友定义不适用于gcc4.9

朋友定义不适用于gcc4.9
EN

Stack Overflow用户
提问于 2016-07-05 07:13:30
回答 1查看 97关注 0票数 2

我需要创建一个动态库:

mylib.h

代码语言:javascript
复制
class FriendClass;

namespace my_namespace
{

class MyLib
{
    friend class FriendClass;

public:
    MyLib();

    /* public functions */

private:
    void function_for_friend_class();
};

} // namespace my_namespace

把它用在这里

friend_function.h

代码语言:javascript
复制
class FriendClass
{
public:
    void some_function()
    {
        MyLib* my_lib = get_my_lib_somehow();
        my_lib->function_for_friend_class();
    }
};

用gcc3.4编译,但是gcc4.9抱怨function_for_friend_class是私有的。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-07-05 08:24:25

通过使用friend class ::FriendClass;,您可以告诉编译器查看class FriendClass定义的全局命名空间,而不是当前的命名空间。

还可使用:

代码语言:javascript
复制
my_namespace::MyLib* my_lib = get_my_lib_somehow();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38197351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档