C++实例VS指针VS引用

Kol*_*nya 4 c++ pointers reference instance

我有一个程序可以创建我自己的Class的许多实例.然后我操作它们:读取,更改,将它们传递给某些第三方方法等.

有三个问题.

  1. 我是否存储实例向量或指针向量?为什么?

  2. 如果我希望做我传递给函数的一个实例或指向它改变一个实例?为什么?

  3. 如果我希望改变的情况下,我通过指针或引用?为什么?

提前致谢!

类示例:

class Player {
    public:
        static const char               width = 35;
        static const char               height = 5;
        static const char               speed = 15;

        int                             socketFD;
        float                           xMin;
        float                           xMax;

        char                            status;
        float                           x;
        float                           y;
        char                            direction;

                                        Player ( int );
        void                            Reset();
        void                            Move();
        void                            SetHost();
        void                            SetClient();

    private:
        void                            EscapeCheck();
};
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 6

我是否存储实例数组或指针数组?为什么?

如果Class是基类,并且您想要阻止对象切片,则存储指针.否则,对象.

如果我不想更改实例,我是否将实例或指针传递给函数?为什么?

如果您按值传递,则不会修改原始对象,因为您正在处理副本.如果传递指针或引用,则将其标记为const:

void foo ( MyClass const* );
void foo ( MyClass const& );
Run Code Online (Sandbox Code Playgroud)

如果我想更改实例,我是否传递指针或引用?为什么?

无论是.我个人更喜欢引用,指针更紧密地连接到动态分配.

如今,经常使用RAII,因此一个很好的选择是使用智能指针代替.