在c ++中用构造函数初始化传递的参数

时间:2015-02-08 14:08:49

标签: c++ constructor parameter-passing

class GameController;

class Snake : public QGraphicsItem {
public:
    enum Direction {
        NoMove,
        MoveLeft,
        MoveRight,
        MoveUp,
        MoveDown
    };

    Snake(GameController & controller); // <<<<<<<<<
};


Snake::Snake(GameController &controller) 
: head(0, 0)
, growing(7)
, speed(3)
, moveDirection(NoMove)
, controller(controller)
{ } 

这句话做了什么?我的意思是在构造函数初始化时该参数做了什么?

2 个答案:

答案 0 :(得分:0)

Snake(GameController & controller);
     

这句话做了什么?

它只是声明Snake构造函数以GameController引用作为参数。

  

我的意思是当构造函数初始化时该参数会做什么?

构造函数初始化时,参数本身不执行任何操作。构造函数的正文代码可以调用它上面的任何操作,或者将它存储到类成员变量(实际情况是关于你的附加信息)。

但是,由于我们没有看到Snake构造函数的定义,因此无法在此明确告知这一点。

答案 1 :(得分:0)

它的作用取决于你的构造函数代码。

该参数在调用构造函数时生效。

当调用构造函数时,它会通过引用传递值,除非您提供代码,否则不能说任何其他内容。