C++ 在类的头文件中声明列表

C++ 在类的头文件中声明列表,c++,list,C++,List,所以,我必须用cpp写一个程序,但我必须用客观范式来写。aa我坚持要申报一份清单。所以我有这个,尽量简化: class A{ private: list<B> *listName; public: A(); ~A(); }; 这可能是一个简单的语法错误,但我暂时找不到任何东西。 在那里声明B的实例是有效的。 在主体工程中也应申报此类清单。 噢,IDE似乎发现它是正确的,编译会抛出错误,如果你对i

所以,我必须用cpp写一个程序,但我必须用客观范式来写。aa我坚持要申报一份清单。所以我有这个,尽量简化:

    class A{
      private:
        list<B> *listName;
      public:
        A();
        ~A();
    };
这可能是一个简单的语法错误,但我暂时找不到任何东西。 在那里声明B的实例是有效的。 在主体工程中也应申报此类清单。
噢,IDE似乎发现它是正确的,编译会抛出错误,如果你对int的理解是正确的,那么在你的代码块中也不会工作。我几乎可以肯定,您要么没有正确地包含列表,要么没有正确地使用标准名称空间

#include <list>

   class A{
      private:
        std::list<int> *listName;
      public:
        A();
        ~A();
    };

B声明为什么?您是否包含并使用了命名空间std?否则必须包含std::list*listNameB是另一个类,但简单的int也不起作用。是的,我包括在内。我想,如果includes出现问题,IDE会在它下面加上红色下划线。试着看看这段代码,你们有一个合适的B类转发声明,在范围内吗?是的,它是用和我的代码完全相同的方式写的。是的,如果把它放在main.cpp中,它会工作,但当我把它放在A.h中时,它会停止。是的,我在main.cpp中包含了A.h。好的,我找到了答案。我在一个单独的头文件中使用了all INCLUDE和namspace std with pragma一次,我将其包含在每个其他文件中,以避免将所有这些文件粘贴到任何地方。编译器没有从那里看到名称空间行。
#include <list>

   class A{
      private:
        std::list<int> *listName;
      public:
        A();
        ~A();
    };
std::list<Type>
using namespace std;