我有一个类以下.h
class Book; //forward declaration of Book
class Reader
{
public:
Reader();
void SetBook( Book );
private:
Book book_; // Error Reader::book_ uses undefined class Book
}
Run Code Online (Sandbox Code Playgroud)
和.cpp包含
#include "book.h"
void Reader::SetBook( Book book ) { this->book_ = book; }
// Error C2440 cannot convert from Book to int
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这个前瞻性声明不起作用.此外,它不会为声明中使用的"Book"类型引发错误
void SetBook (Book )
Run Code Online (Sandbox Code Playgroud)
有什么问题的建议,这里?