-3

所以我决定开始学习 c++ 我想了解如何在其中使用类。我以为我已经正确设置了它(通过查看教程),但它给了我以下错误..

C:\Dev-Cpp\main.cpp `Math' does not name a type 

我是 c++ 和 Dev-C++ 编译器的新手,所以我还没有找出错误。这是我的代码..

主类:

#include <cstdlib>
#include <iostream>

using namespace std;

//variables
int integer;
Math math;

int main()
{
    math = new Math();


    integer = math.add(5,2);

    cout << integer << endl;


    system("PAUSE");
    return EXIT_SUCCESS;
}

这是我的 Math.cpp 类:

#include <cstdlib>
#include <iostream>
#include "Math.h"

using namespace std;

public class Math {

    public Math::Math() {

    }

    public int Math::add(int one, int two) {
           return (one+two);      
    }

}

和数学头文件:

public class Math {
       public:
              public Math();
              public int add(int one, int two) {one=0; two=0};      

};

任何帮助将不胜感激,我一直在努力解决这个问题。

4

1 回答 1

2

您正在使用很多 Java 风格的语法。你应该拥有的是这个(未经测试):

//main.cpp

#include <cstdlib>
#include <iostream>
#include "Math.h"
using namespace std;

int main()
{
    //No Math m = new Math();
    //Either Math *m = new Math(); and delete m (later on) or below:
    Math m; //avoid global variables when possible.
    int integer = m.add(5,2); //its m not math.
    cout << integer << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

对于数学.h

class Math { //no `public`
public:
    Math();
    int add(int, int);
};

对于数学.cpp

#include <cstdlib>
#include <iostream> //unnecessary includes..
#include "Math.h"

using namespace std;

Math::Math() {

}

int Math::add(int one, int two) {
    return (one+two);
}

并编译这两个cpp文件(gcc的情况下)

$ g++ main.cpp Math.cpp
$ ./a.out

看来您正在使用 Dev C++ IDE,在这种情况下,IDE 会为您编译并执行程序。

于 2012-07-03T04:58:17.920 回答