可能重复:
Why is there no call to the constructor?
What’s the effect of “int a(); ” in C++?
What’s the differences between Test t; and Test t();? if Test is a class
由于某种原因,我试图制作的游戏项目会忽略我创建对象的指令。
项目刚刚开始,我不知道为什么会这样。
我使用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)”用于测试目的。
为什么会这样?
答案 0 :(得分:3)
Motor m1();
这意味着m1
是一个不带参数的函数,并返回类Motor
的实例。
你的意思是:
Motor m1;
这意味着默认构造一个类Motor
的实例并将其称为m1
。