结构在eclipse cdt中无法识别

时间:2012-10-30 23:50:04

标签: c++ eclipse-cdt

我正在尝试用eclipse cdt写一个基于控制台的计算器。但是认识我的struct Calc似乎有问题

有我的头文件:

#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无法找到Calc类型 我哪里做错了? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

void Calc() {}

不是要走的路 - 失去void返回类型。其次,您需要在Calc成员函数上使用范围解析运算符 - 再次失去void

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