这个问题已经在这里有了答案:




已关闭8年。






我出于某种原因试图创建游戏项目而忽略了我创建对象的说明。

该项目才刚刚开始,我不知道为什么会这样。

我使用netbeans作为ide,使用g++作为编译器,操作系统是ubuntu 12.10。

发生这种情况的代码是这样的:

#include "Vector.h"
#include"Motor.h"
int main(int argc, char** argv)
{
    Motor m1();
    return 0;
}

当我在“Motor m1();”上设置断点时并点击调试,箭头跳至返回指令,并且该对象的构造函数未执行

Motor的代码是这样的:
#include "Motor.h"
Motor::Motor() {
    SDL_Init(SDL_INIT_EVERYTHING);
    pantalla=NULL;
    pantalla=SDL_SetVideoMode(800,600,32,SDL_SWSURFACE);

    SDL_Delay(2000);
}
Motor::~Motor() {
    SDL_Quit();
}

“SDL_Delay(2000)”用于测试。

为什么会这样呢?

最佳答案

Motor m1();

这意味着m1是一个不带参数的函数,它返回Motor类的实例。

你的意思是:
Motor m1;

这意味着默认构造一个Motor类的实例,并将其称为m1

关于c++ - ubuntu 12.10中的c++和netbeans中的一条指令被忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13617410/

10-08 21:34