我正在尝试在main中调用公共函数validInfixCheck()
,但在尝试编译时遇到此错误:
g ++ CalculatorMain.cpp CalculatorExp.cpp
In function `main':
calculatorMain.cpp:(.text+0x99): undefined reference to
`CalculatorExp::validInfixCheck(std::string)'
collect2: error: ld returned 1 exit status
注意:validInfixCheck()
目前不执行任何操作。我只想确保可以在main中使用它。
我尝试调用没有参数的公共函数来验证这不是问题,并且显示相同的错误。
calculatorMain.cpp
#include "CalculatorExp.h"
#include<iostream>
#include <string>
using namespace std;
//prototype declarations
string getInfixExpression();
int main()
{
CalculatorExp calc;
string inputExpression;
inputExpression = getInfixExpression();
calc.validInfixCheck(inputExpression);
return 0;
}
string getInfixExpression()
{
string exp;
cout<<"Enter infix expression to evaluate: "<<endl;
cin>>exp;
return exp;
}
CalculatorExp.cpp
#include "CalculatorExp.h"
#include <string>
#include <stack>
using namespace std;
CalculatorExp::CalculatorExp()
{
//default constructor
}
// public //
// valid input check
bool validInfixCheck(string inputExpression)
{
return 0;
}
CalculatorExp.h
#ifndef CALCULATOREXP_H
#define CALCULATOREXP_H
#include <string>
#include <stack>
using namespace std;
class CalculatorExp
{
public:
/** Default Constructor;
* @param none
* @pre None*/
CalculatorExp();
/** CONSTANT MEMBER FUNCTIONS*/
/** returns the exp.
/* @pre None
/* @post The value returned is the exp*/
string get_exp( ) const { return exp; }
/** FUNCTIONS*/
/** returns true if exp is validated.
/* @pre None
/* @post The value returned is true if exp is validated.*/
bool validInfixCheck(string inputExpression);
private:
/** expression*/
string exp;
};
#endif
答案 0 :(得分:1)
您已在类CalculatorExp.h中声明了validInfixCheck()作为类CalculatorExp的方法。但是,您尚未将此函数定义为类的成员,因为在定义中省略了类名前缀。因此,请在CalculatorExp.cpp中进行此更改:
bool CalculatorExp::validInfixCheck(string inputExpression)
{
return 0;
}