Class ';[课程名称]';不在C++;
我正在使用列表列表编程一个图形。为此,我有两个类,每个类都有一个指向同一类的另一个对象的指针和一个指向第二个类的对象的指针。代码如下: 文件V.h: A.cpp:Class ';[课程名称]';不在C++;,class,compiler-errors,declaration,Class,Compiler Errors,Declaration,我正在使用列表列表编程一个图形。为此,我有两个类,每个类都有一个指向同一类的另一个对象的指针和一个指向第二个类的对象的指针。代码如下: 文件V.h: A.cpp: #包括“A.h” A::A()//该消息表示类名不在范围内V.h不应包括A.cpp,它应包括A.h。同样适用于A.h包含V.cpp 通常,您永远不希望包含来自头或其他CPP文件的CPP文件。只有.h头文件是为包含在预处理器中而设计的 如果是这样的循环定义,您应该向前声明要定义的类的指针,并放弃包含该类的头: #ifndef VERTI
#包括“A.h”
A::A()//该消息表示类名不在范围内V.h
不应包括A.cpp
,它应包括A.h
。同样适用于A.h
包含V.cpp
通常,您永远不希望包含来自头或其他CPP文件的CPP文件。只有.h
头文件是为包含在预处理器中而设计的
如果是这样的循环定义,您应该向前声明要定义的类的指针,并放弃包含该类的头:
#ifndef VERTICEPUNT_H
#define VERTICEPUNT_H
class A; // <<== Forward declare the class.
typedef char E;
class V
{
public:
E etiqueta;
V* siguiente;
A* primera;
V();
~V();
};
#endif // VERTICEPUNT_H
\ifndef verticepount\u H
#定义Verticepount\u H
A类;//我试过了,它修复了错误。但是,我收到了一些警告,例如调用~V时可能出现的问题,以及该类的无效使用。@J-orgeMataVillalobos您在两个文件中都遇到了相同的问题,因此您需要在两个位置执行类似的更改。
#include "V.h"
V::V()
{
etiqueta = ' ';
siguiente = 0;
primera = 0; //<- Error: 'primera' was not declared in this scope
}
V::~V()
{
delete primera;
delete siguiente;
}
#ifndef ARISTAPUNT_H
#define ARISTAPUNT_H
#include "V.cpp"
typedef int P;
class A
{
public:
P peso;
V* vertice;
A* siguiente;
A();
~A();
};
#endif // ARISTAPUNT_H
#include "A.h"
A::A() //<- Error: 'A' does not name a type
{
peso = 0;
siguiente = 0;
vertice = 0;
}
A::~A() // <- Error: 'A' does not name a type
{
delete siguiente;
}
#ifndef VERTICEPUNT_H
#define VERTICEPUNT_H
class A; // <<== Forward declare the class.
typedef char E;
class V
{
public:
E etiqueta;
V* siguiente;
A* primera;
V();
~V();
};
#endif // VERTICEPUNT_H