【发布时间】:2013-12-26 06:26:37
【问题描述】:
下面的例子显然是错误的,但是我想知道是否有可能实现类似下面的东西
extern int return_value();
class A {
private:
int k = 1;
public:
friend int return_value();
};
int return_value()
{
return k;
}
我知道如果不将 A 类的实例作为 return_value(A &a) 传递给函数 return_value() 然后作为 a.k 访问变量,我将无法执行以下操作
注意函数return_value() 是一个例子。我想知道在 C++ 语言的范围内是否有办法允许直接访问非成员函数体中的变量
【问题讨论】:
-
如果成员变量不依赖于实例对象,那么可以使用静态成员变量。
-
您可能想阅读about the XY problem,然后告诉我们为什么您会想要这个。可能还有其他(更好的)解决方案。
标签: c++ class friend class-members non-member-functions