繁体   English   中英

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

[英]parameter passed in constructor initialisation in c++

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)
{ } 

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

 Snake(GameController & controller); 

这句话是做什么的?

这只是一个以GameController引用为参数的Snake构造函数的声明。

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

构造函数初始化时,参数本身不执行任何操作。 构造函数的主体代码可能会对其调用任何操作,或将其存储到类成员变量中(关于您的附加信息,实际上就是这种情况)。

但是,由于我们看不到Snake构造函数的定义,因此在此绝对不能确切地说出这一点。

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

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

调用构造函数时,它将通过引用传递值,除非您没有提供代码,否则将无话可说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM