C++ 为什么克莱恩不';你不把班级标记为班级吗?

C++ 为什么克莱恩不';你不把班级标记为班级吗?,c++,class,clion,C++,Class,Clion,当我尝试编写这个类时,它不将其视为类,也无法解析类卡片。我能用它做什么 #ifndef HAND_HPP #define HAND_HPP #include <iosfwd> #include <vector> #include "cards.hpp" class Hand { //it doesn't mark it as class private: int maxSize; std::vector<Card> hand; //Ca

当我尝试编写这个类时,它不将其视为类,也无法解析类卡片。我能用它做什么

#ifndef HAND_HPP
#define HAND_HPP

#include <iosfwd>
#include <vector>
#include "cards.hpp"

class Hand {  //it doesn't mark it as class
private:
    int maxSize;
    std::vector<Card> hand;  //Cannot resolve variable 'Card'

public:
 ***
};


#endif //HAND_HPP
#如果没有手动水电站
#定义手动水电站
#包括
#包括
#包括“cards.hpp”
类手{//它不将其标记为类
私人:
int-maxSize;
std::vector hand;//无法解析变量“Card”
公众:
***
};
#endif//HAND_水电站
现在我可以上传图片了,看起来是这样的。
和cards.hpp(其中声明了Card)包含hand.hpp

您需要
#包含
包含类
声明的头文件,或者将
类的声明放在
手上。编译器需要知道
Card
类的完整定义(而不是实现),因此任何转发声明都不会使编译器满意。

可能是
“cards.hpp”
文件有问题。试着省略那个包含。替换为
struct Card{}。我省略了include,它让我返回它。当你试图编译它时,你会得到一个实际的编译器错误吗?我对CLion的索引器感到困惑,尽管没有这么简单的问题。谢谢大家。我们决定彻底改变项目。:)“请注意,将EAP与传统的预发布软件区分开来非常重要。请注意,EAP版本的质量有时甚至远低于通常的测试版标准。”cards.hpp包含类别卡声明。然后
Card.hpp
必须包括
hand.hpp
。请试一试!这是很久以前加的。现在我用struct改变了everywhere类。但这没用。