gpt4 book ai didi

c++ - 在不同命名空间中将函数声明为内联友元

转载 作者:行者123 更新时间:2023-11-30 01:30:20 24 4
gpt4 key购买 nike

我有一个这样声明的类:

namespace nsp1
{

class A
{
public :
inline friend void DoSomething();

private :
A();

int a;
};

}

像这样,函数 DoSomething() 将位于命名空间 nsp1 中。有没有一种方法可以声明此函数以使其既内联友元又在命名空间之外?

最佳答案

解决方法:

 namespace nsp1
{
class A;
}

inline void DoSomething(const nsp1::A & a);
namespace nsp1
{

class A
{
public :
inline friend void ::DoSomething(const nsp1::A & a);

private :
A();

int a;
};

}

inline void DoSomething(const nsp1::A & a)
{
std::cout<<a.a<<std::endl;//a.a is private!
}

关于c++ - 在不同命名空间中将函数声明为内联友元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4602066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com