[英]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.