gpt4 book ai didi

c++为什么这个前向声明失败了?

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:18 27 4
gpt4 key购买 nike

我有一个包含以下 .h 的类

class Book; //forward declaration of Book

class Reader
{
public:
Reader();

void SetBook( Book );

private:

Book book_; // Error Reader::book_ uses undefined class Book

}

.cpp 包含

#include "book.h"

void Reader::SetBook( Book book ) { this->book_ = book; }
// Error C2440 cannot convert from Book to int

我不明白为什么这个前向声明不起作用。此外,它不会为声明中使用的“Book”类型抛出错误

void SetBook (Book )

这里有什么问题的建议吗?

最佳答案

声明指针或引用时,前向声明就足够了。因为您的成员 book_ 是 Book 类型,编译器在处理 header 时需要 Book 的定义。

关于c++为什么这个前向声明失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764258/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com