我需要创建一个动态库:
mylib.h
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
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是私有的。我做错了什么?
发布于 2016-07-05 08:24:25
通过使用friend class ::FriendClass;,您可以告诉编译器查看class FriendClass定义的全局命名空间,而不是当前的命名空间。
还可使用:
my_namespace::MyLib* my_lib = get_my_lib_somehow();https://stackoverflow.com/questions/38197351
复制相似问题