我正在尝试用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类型 我哪里做错了? 提前谢谢!
答案 0 :(得分:0)
2件事,第一个构造函数没有返回类型,所以
void Calc() {}
不是要走的路 - 失去void
返回类型。其次,您需要在Calc
成员函数上使用范围解析运算符 - 再次失去void
Calc::Calc(const Calc& other){
}