类定义的语法错误

时间:2014-03-29 21:05:38

标签: c++

Eclipse说:在令牌之前不允许使用函数定义' {' (在执行的方面)

我错过了什么?

#include <iostream>
using namespace std;

int main(){

    class MainButton {
        int a;
    public:
        void pressed();
        void released();
    };

    void MainButton::pressed() {
        cout<<"Button pressed";
    }

    void MainButton::released(){
        cout<<"Button released";
    }

    return 0;
}

3 个答案:

答案 0 :(得分:2)

您正在尝试在函数中定义一个类,在本例中为int main()。您需要将类定义移出此函数的范围。

答案 1 :(得分:0)

您的班级定义&amp;实施应该在主要方法之外:

#include <iostream>
using namespace std;

class MainButton {
    int a;
public:
    void pressed();
    void released();
};

void MainButton::pressed() {
    cout<<"Button pressed";
}

void MainButton::released(){
    cout<<"Button released";
}

int main(){
    return 0;
}

这是因为该类不仅仅是main方法的一部分,而是整个程序(其他函数应该能够访问它)。

要使用它,你可以这样做:

int main(){
    MagicButton mb = new MagicButton();
    mb.pressed();
    return 0;
}

答案 2 :(得分:0)

您不能以这种方式定义方法。

在main()函数中定义pressed()和released()方法的唯一方法是定义内联到类的方法。您的另一个选择是将类的整个定义移到main函数()之外。