Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class ';[课程名称]';不在C++;_Class_Compiler Errors_Declaration - Fatal编程技术网

Class ';[课程名称]';不在C++;

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

我正在使用列表列表编程一个图形。为此,我有两个类,每个类都有一个指向同一类的另一个对象的指针和一个指向第二个类的对象的指针。代码如下:

文件V.h:

A.cpp:

#包括“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