在Eclipse CDT中未识别的结构

struct not recognized in eclipse cdt

本文关键字:识别 结构 Eclipse CDT      更新时间:2023-10-16

我试图通过eclipse cdt编写基于控制台的计算器。

有我的标题文件:

#ifndef __CALC_H__
#define __CALC_H__
#include <iostream>
struct Calc {
  Calc();
  Calc(const Calc &other);
  bool error;
  int display;
  char oper;
  int result;
  int memory;
  void digit(int digit);
  void op(char oper);
  void equals();
  void memPlus();
  void memClear();
  void memRecall();
  bool isError() const;
  void allClear();
};
std::ostream &operator<<(std::ostream &out, const Calc &c);
#endif

和我的源文件

#include "calc.h"
void doOperation(Calc& calc){
    switch(calc.oper){//ide tells me oper cant be resolved
    case '+':
        break;
    case '-':
        break;
    case '*':
        break;
    case '/':
        break;
    }
}
void Calc(){
}
void Calc(const Calc& other){//ide tells me Calc does not name a type
}

所以问题是1. OPER不能被识别为CALC的数据成员2.当我使用calc作为参数时,eclipse找不到类型的计算我在哪里做错了?预先感谢!

2件事,第一个构造函数没有返回类型,所以

void Calc() {}

不是要走的方式 - 丢失void返回类型。第二,您需要在Calc成员函数上使用范围分辨率运算符 - 再次丢失void

 Calc::Calc(const Calc& other){
 }