1

可能重复:
为什么没有调用构造函数?
“int a(); 的作用是什么?” 在 C++ 中?
Test t 有什么区别?和测试 t();? 如果测试是一个类

对于我试图制作的游戏项目,由于某种原因,我创建对象的指令被忽略。

该项目刚刚开始,我不知道为什么会发生。

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

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

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

当我在“Motor m1();”上设置一个断点时 并点击调试箭头跳转到它之后的返回指令并且不执行对象的构造函数

电机的代码是这样的:

#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)”用于测试目的。

为什么会这样?

4

1 回答 1

3
Motor m1(); 

这意味着这m1是一个不带参数并返回 class 实例的函数Motor

你的意思是:

Motor m1;

这意味着默认构造一个类的实例Motor并调用它m1

于 2012-11-29T01:41:57.043 回答