在 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
构造函数的定义。
相关文章:
- C++:使用运算符 = 调用多参数构造函数
- 通过零参数构造函数创建的 glm::mat4 应该包含哪些值?
- 好奇的混合与可变参数构造函数
- 具有默认值的单个参数构造函数是否与默认构造函数相同?
- 为什么我们需要创建一个单参数构造函数来使用临时的无名称对象
- 在可变参数构造函数中初始化常量数组
- C++ 显式多参数构造函数歧义
- 零一参数构造函数
- 可变参数构造函数中的 SFINAE
- 当没有显式关键字与单参数构造函数一起使用时,编译器可以发出警告
- 可变参数类模板和可变参数构造函数
- 确保模板参数类型与其可变参数构造函数的类型匹配
- C++默认参数构造函数与内联初始化优先级
- 如何在 c++ 中将包含复制构造函数的类的参数构造函数称为私有?
- 自动存储中没有无参数构造函数的类对象和异常
- 警告:用两个参数构造函数返回对象时,表达结果未使用
- 如何在C++中调用无参数构造函数
- 在 c++ 中具有多个参数构造函数的模板类存在问题
- 可变参数构造函数优先于用户提供的移动构造函数,除非默认
- 如何从可变参数构造函数参数构造任何对象?