c ++ --direct--访问非成员函数体中的类成员

时间:2013-12-09 07:52:13

标签: c++ class friend class-members non-member-functions

以下示例显然是错误的,但我想知道是否有可能实现类似以下内容

extern int return_value();

class A {
private:
    int k = 1;
public:
    friend int return_value();
};

int return_value()
{
    return k;
}

我知道如果不将类A的实例作为return_value()传递给函数return_value(A &a),然后将变量作为a.k

访问,我就无法执行以下操作

注意函数return_value()就是一个例子。我想知道是否有一种方法在C ++语言的范围内允许直接访问非成员函数体中的变量

1 个答案:

答案 0 :(得分:0)

AFAIK只有两种方法可以访问类的成员(对于非成员函数)。

  1. 通过您描述的实例。
  2. 或者没有实例iff将成员声明为静态成员。也就是说,它对于该类的所有对象具有相同的值,并且可以使用类作用域操作符直接访问。
  3. 当然,假设范围允许函数访问类成员。