不同文件中的 C++ 类问题

标签 c++

我的新程序有点问题。我制作了一个类文件,一切都很顺利,直到! 我明白了!

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 之前缺少一个 classstruct

另一个问题是您尝试重新定义源文件中的类。您应该将完整的定义放在头文件中,并将方法的实现放在源文件中。

正如 WhozCraig 在评论中提到的,解决第二个问题也就解决了第一个问题。

关于不同文件中的 C++ 类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385436/

相关文章:

c++ - Cin 没有操作数 >>

c++ - ofstream(mode ios::out) 在系统停止时删除现有文件空白

带有大括号初始值设定项的 C++ 隐式转换

c++ - 嵌套 vector 的动态分配

c++ - Qt::Popup 破坏 QScroller 动态滚动?

c++ - 如何在 Asp.Net AJAX UpdatePanel 之后获取文档 CDHtmlDialog

c++ - 当在不同函数中调用 mysql_store_result() 时,mysql_free_result() 出现段错误

c++ - 静态代码分析器 : unmanaged C++ Visual Studio 2008

c++ - 为什么必须在 C++ 中定义静态数据成员?

c++ - 使用 QT 中的输入更改拨号 slider 的值?