C++ 中的朋友 class 不允许访问私有成员属性

Friend class in C++ not allowing access to private member attributes

我最近开始使用 C++,老实说,我的讲师帮不上什么忙,我正在尝试让链表好友访问节点 class。据我所知,我已经声明了我需要的一切,但我仍然无法访问 Node 私有成员,如果有人能看到我遗漏的东西,那就太好了!

我的节点头文件:

```#ifndef NodeofBook_h
#define NodeofBook_h

#include <stdio.h>
#include "Book.h"

class ListOfBooks;
//
class NodeofBook {
    
    friend class ListOfBooks;
    
private:
    NodeofBook* next;
    Book* theBook;
    
public:
    
};


#endif /* NodeofBook_h */

我的链表头文件:

#ifndef ListOfBooks_h
#define ListOfBooks_h

#include <stdio.h>
#include "NodeofBook.h"

class ListOfBooks {
    
private:
    
public:
    ListOfBooks();
    void insertBack(int);
    void displayList();
    int deleteMostRecent();
    int deleteInt(int pos);
};


#endif /* ListOfBooks_h */

我的链表cpp文件:

#include "ListOfBooks.h"

int ListOfBooks(){
    
    return 0;
}

ListOfBooks::ListOfBooks(){
    theBook->title = "noTitleYet";
    theBook->isbn = 0000;
    next = NULL;
}

我收到一条错误消息,指出 使用了未声明的标识符 'theBook'

非常感谢任何帮助!

NodeofBook声明ListofBooks是朋友class只是意味着ListofBooks的实现可以访问NodeofBook的私有成员,但是有仍然需要成为 NodeofBook 的实例才能访问。它的成员不是静态的;非静态成员变量是某些对象的一部分。也就是说,仅仅因为 ListofBooksNodeofBook 的朋友并不意味着它神奇地拥有 NodeofBook 成员的实例。

朋友关系不像继承那样是一种关系:它只是关于访问。