我的新程序有点问题。我制作了一个类文件,一切都很顺利,直到! 我明白了!
C:\Code Block Projects\Not so Advanced Calculator\Calcu.cpp|5|错误:'{' 标记前应为 lified-id|
在代码块 12.11 中;
我的 Calcu.h 文件:
#ifndef CALCU_H
#define CALCU_H
class Calcu
{
public:
Calcu();
};
#endif // CALCU_H
我的 Calcu.cpp 类文件:
#include "Calcu.h"
#include <iostream>
using namespace std;
Calcu{
Calcu(){}
public:
void setNumbers(int x, int y){ no1=x, no2=y; }
int getAddition() {return no1+no2;}
int getSubstraction() {return no1-no2;}
int getDivision() {return no1/no2;}
int getMultiplication() {return no1*no2;}
int getExponent(){ return no1**no2; }
private:
int no1, no2;
};
还有我的 main.cpp:
#include <iostream>
#include <Calcul.h>
using namespace std;
void function_calculator()
{
Calcu calcul;
int noI, noII; char operation;
cout << "Welcome to a more advanced and optimized calculator. ©UnityInc." << endl;
cout << "Please insert your desired numbers. First number should be carefully selected if you wish to raise to the exponent.";
cin>>noI;
cout<<"Great, now insert your other number: ";
cin>>noII;
calcu.setNumbers(noI, noII);
cout<<"Very well, what kind of operation would you like? +, -, *, / or exponantiation(type **): ";
cin>>operation;
if(operation=='+')
calcul.getAddition();
else if(operation=='-')
calcul.getSubstraction();
else if(operation=='/')
calcul.getDivision();
else if(operation=='*')
calcul.getMultiplication();
else if(operation=='**')
calcul.getExponent();
else
return function_calculator;
}
int main()
{
function_calculator;
return 0;
}
如有任何帮助,我们将不胜感激!
最佳答案
您有两个问题:一个是源文件 Calcu.cpp
中的错误消息。您在 Calcu
之前缺少一个 class
或 struct
。
另一个问题是您尝试重新定义源文件中的类。您应该将完整的定义放在头文件中,并将方法的实现放在源文件中。
正如 WhozCraig 在评论中提到的,解决第二个问题也就解决了第一个问题。
关于不同文件中的 C++ 类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385436/