C++ 错误:(类名)未命名类型

C++ Error: (class name) does not name a type

本文关键字:未命名 类型 类名 错误 C++      更新时间:2023-10-16

我收到错误"MyIsland未命名类型",但没有收到错误"MyList未命名类型"。为什么以及如何解决此问题?

编辑:我认为这是由于在头文件中具有列表类,但MyIsland类在单独的文件中,但是有没有办法在不移动MyIsland类的情况下解决此问题?

这是我文件的一部分:

主.cpp

#include "header.h"
class ArchipelagoExpedition
{
private:
MyIsland* darr;
int islands;
public:
ArchipelagoExpedition();
ArchipelagoExpedition(int is);
...

岛.cpp

#include "header.h"
class MyIsland
{
private:
MyList adjList;
MyList visList;
public:
...

MyListAndNode.cpp

//list methods
...
}

标题.h

//list and node class
...

您的程序找不到MyIsland。阅读本文以找出原因。

类的声明应该在头文件中(.h.hpp...),而源文件中的实现(.cc.cpp...)。在您的情况下,我会做这样的事情:

  • List
    • list.hpp(声明)
    • list.cpp(实施)
  • Island
    • island.hpp(声明)
    • island.cpp(实施)

在上述情况下,您应该在island.hpp中包含list.hppisland.hpp包含在main.cpp中,它将起作用。


哦...我现在有同样的问题。它是由声明与类名具有相同元素的枚举引起的,例如:

enum Templates
{
Temp1,
Temp2
};
class Temp1
{
};
class Temp
{
Temp1 m_temp1; // error here
};

这就是为什么枚举应该用大写字母书写。检查您是否没有类似的东西。