从朋友班访问私人会员

时间:2014-04-02 19:24:02

标签: c++

我想尝试自己解决这个问题,而不是寻求帮助,但是经过几个小时的搜索谷歌和观看无数的YouTube视频,我都没有成功。我想要做的是创建一个朋友类,然后从该类访问"父母"的私人成员。类。我添加了friend class bar,您将在下面看到,然后尝试使用.->符号来访问私有成员的值,但没有运气。我有一种感觉,我正确地链接,但它只是正确地呼叫私人会员?

// Headers / classfoo.h

struct node {
    int data;
    node* next;
};

class foo {
public:
    friend class bar;
    foo();
private
    node *head;
};

// Headers / classbar.h

class bar {
public:
    int test();
};

// Source / classbar.cpp

int bar::Test() {
    // nothing working
    // head->data;
    // head.data;
}

1 个答案:

答案 0 :(得分:2)

要执行head->data,您需要foo中的bar个对象或传递给bar::Test()。然后它可能是这样的:

class bar {
  foo f;
  public:
    int Test();
}

int bar::Test() {
  f.head->data;
}

当然不要忘记初始化成员变量f