NetBeans中的C ++对象实例化错误

时间:2014-03-17 14:19:44

标签: c++ oop

我的代码遇到了一个非常奇怪的问题。 我有以下课程:

    class Test
    {
        int a;
        string name;
     public:
        Test(){a = 0; name = "foo";}
        void setArguments(int number, string b){
            name = b;
            a = number;
        }
    };

当我尝试使用

调用构造函数时
    int main(void){
        Test a = Test();
        return 0;
    }

我可以构建代码,但无法运行它。我甚至无法调试它。什么错误的想法?

编辑1:我开始认为这是编译器相关的问题。我使用MinGW以及MSYS和C ++ 11标准

3 个答案:

答案 0 :(得分:1)

这个代码甚至构建了吗? 在class身体之后没有分号。 }没有关闭setArguments

答案 1 :(得分:0)

可能您有C#/ Java背景,这就是您尝试使用该语法实例化对象a的原因。您可以使用以下方法解决问题:

int main(void){
    Test a;
    return 0;
}

C ++中不是指针的对象必须始终在声明构造函数时调用它们。

答案 2 :(得分:0)

main中的代码基本上遵循以下内容:

使用复制构造函数将临时对象复制到a。更好的方法是编写以下内容以避免临时性:Test a;