[英]C++ class construction by member initializer list with pointer to member address
[英]How to call the construction of a pointer member variable in C++?
因此,我有一个名为Player的类,具有如下的私有指针变量:
class Player
{
public:
Player();
void update();
void draw();
private:
InputCp* input;
PhysicsCp* physics;
GraphicsCp* graphics;
};
每个InputCp,PhysicsCp和GraphicsCp都有构造函数,如下所示:
PhysicsCp::PhysicsCp()
{
// adjust values to change player physics
normMaxSpeedX = 10;
maxSprintSpeedX = 20;
normAccel = 1;
sprintAccel = 2;
gravity = 2;
initialJumpSpeed = 10;
}
如何做到这一点,以便在调用播放器构造函数时,它具有用于输入,物理和图形实例的构造函数?
只是不要使用指针:
做:
class Player
{
public:
Player();
void update();
void draw();
private:
InputCp input;
PhysicsCp physics;
GraphicsCp graphics;
};
您的默认构造函数将被调用。
注意:
std:unique_ptr<>
),以避免与指针相关的内存管理std:unique_ptr<>
发生的混乱。 它们需要在构造函数中创建
Player::Player()
{
input = new InputCp;
physics = new PhysicsCp;
graphics = new GraphicsCp;
}
但是请确保您没有泄漏它们,因此请在析构函数中将其delete
Player::~Player()
{
delete input;
delete physics;
delete graphics;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.