尝试从C ++中的单独类访问枚举时发生未声明的错误

时间:2019-02-03 04:57:53

标签: c++ compiler-errors declaration

我有一个简单的C ++计算器,其中包含三个类(仅出于练习目的,实际上我不需要那么多)。它们是tmp = [] for node in q: for child in node.children: tmp.append(child) q = tmp (使用其他对象的主要对象)Calculator(用于存储为整数和枚举实例的简单数据结构)和Expression(从用户读取输入)并转换为表达式)。 这是Parser类头文件的代码:

Calculator

和Expression头文件:

#ifndef CALCULATOR_H
#define CALCULATOR_H

#include <Expression.h>

class Calculator
{
public:
    enum Operation {Addition, Subtraction, Multiplication, Division, InvalidOperation};

    Calculator();
    ~Calculator();

    float calculate (const char* text);
protected:

private:
    float calculate (Operation o, float num1, float num2);
    float calculate (Expression* e);
};

#endif

编译器告诉我,即使我只是试图访问枚举而不是计算器的实例,在Expression类的构造函数中也未声明“ Calculator”(并且如果我没有理由,为什么它不起作用。如果您知道是什么导致了此问题,请告诉我。

谢谢!

编辑:我实际上尝试删除了#ifndef EXPRESSION_H #define EXPRESSION_H #include <Calculator.h> class Expression { public: Expression(Calculator::Operation operand, float num1, float num2); virtual ~Expression(); Calculator::Operation getOperand (); float getNum1 (); float getNum2 (); protected: private: Calculator::Operation _operand; float _num1; float _num2; }; #endif // EXPRESSION_H 部分,但是该部分也不起作用,因此此问题不仅限于枚举。

0 个答案:

没有答案