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

parameter passed in constructor initialisation in c++

本文关键字:参数 构造函数 C++ 初始化      更新时间:2023-10-16
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构造函数的定义。