gpt4 book ai didi

c++ - 错误 C2079 : 'myMath' uses undefined class 'mathTools

转载 作者:行者123 更新时间:2023-11-30 02:42:58 25 4
gpt4 key购买 nike

<分区>

我有一个名为 Utils.h 的文件。我在里面放了一些类(class)。这些类的名称是:PointEdgeConemathTools。我还有另外两个名为 RedBlackTree.hRedBlackTree.cpp 它们包含类RedBlackTree 的声明和实现。我的 main() 函数在 source.cpp 中。我可以在其中包含 Utils.hRedBlackTree.h 并且没有问题。但是当我在“RedBlackTree.h”中包含 Utils.h 时,我遇到错误 C2079。我听说这是因为标题中的循环依赖,但我不能在这里。另一个奇怪的错误是:error C2370: 'max_input_size' : redefinition;不同的存储类,如果我不在 RedBlackTree.h 中包含 "Utils.h",这个错误就不会发生。

编辑:
如果我编写 mathTools *myMath; 而不是 mathTools myMath; 并为其他类这样做,我就不会有这个问题。

我的 Utils.h 看起来像这样:

#include <cstdlib>
#include <algorithm>
#include <string>
#include <map>

#define PI 3.14159265358979323
#define and &&
#define or ||

#define TETA 30.0f
#define OMEGA 0.15f

const int max_input_size = 50;
//const unsigned long long INF = 2147483647;
#define INF 2147483647


class Point{
public:
/*
Some Functions
*/

private:
/*
. . .
*/
};

class Edge{
public:
// . . .
private:
// . . .
};

class Cone{
public:
// . . .
};

class mathTools{
public:// . . .
private:// . . .
};

红黑树.h

#include "Utils.h" //if I comment this line, there wont be error C2097 

#pragma once

// class prototype
template <class Comparable>
class RedBlackTree;

template <class Comparable>
class RBTreeNode{
/*
.
.
.
*/
friend class RedBlackTree<Comparable>;
};

template <class Comparable>
class RedBlackTree
{
public:
//...

private:
//...
};

源代码.cpp

#include "Utils.h"
#include "RedBlackTree.cpp"


//____________________GLOBAL VARIABLES
mathTools myMath; //error C2079: 'myMath' uses undefined class 'mathTools'
// and there are lots of errors after it

std::vector<Cone>cones;
std::vector<Point>input;
std::vector<Edge> outLawEdges;

bool E[max_input_size][max_input_size] = { false };
double t_sp[max_input_size][max_input_size] = { (double)INF };
double FW[max_input_size][max_input_size] = { (double)INF };
double dist[max_input_size][max_input_size] = { (double)INF };

int main(){
// . . .
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com