如何在C++中调用指针成员变量的构造?

Yax*_*lat 0 c++ constructor pointers

所以我有一个名为Player的类,私有指针变量如下:

class Player
{
public:
    Player();

    void update();
    void draw();
private:
    InputCp* input;
    PhysicsCp* physics;
    GraphicsCp* graphics;
};
Run Code Online (Sandbox Code Playgroud)

InputCp,PhysicsCp和GraphicsCp中的每一个都有如下所示的构造函数:

PhysicsCp::PhysicsCp()
{
    // adjust values to change player physics
    normMaxSpeedX = 10;
    maxSprintSpeedX = 20;
    normAccel = 1;
    sprintAccel = 2;
    gravity = 2;
    initialJumpSpeed = 10;
}
Run Code Online (Sandbox Code Playgroud)

我如何制作它,以便在调用播放器构造函数时,它具有输入,物理和图​​形实例的那些?

qua*_*dev 5

只是不要使用指针:

做:

class Player
{
public:
    Player();

    void update();
    void draw();
private:
    InputCp input;
    PhysicsCp physics;
    GraphicsCp graphics;
};
Run Code Online (Sandbox Code Playgroud)

并且将为您调用默认构造函数.


注意:

  • 如果你真的需要指针(事实上你很少这样做),使用智能指针(std:unique_ptr<>例如),以避免通常与指针相关的内存管理混乱.