Kol*_*nya 4 c++ pointers reference instance
我有一个程序可以创建我自己的Class的许多实例.然后我操作它们:读取,更改,将它们传递给某些第三方方法等.
有三个问题.
我是否存储实例向量或指针向量?为什么?
如果我不希望做我传递给函数的一个实例或指向它改变一个实例?为什么?
如果我不希望改变的情况下,我通过指针或引用?为什么?
提前致谢!
类示例:
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)
我是否存储实例数组或指针数组?为什么?
如果Class是基类,并且您想要阻止对象切片,则存储指针.否则,对象.
如果我不想更改实例,我是否将实例或指针传递给函数?为什么?
如果您按值传递,则不会修改原始对象,因为您正在处理副本.如果传递指针或引用,则将其标记为const:
void foo ( MyClass const* );
void foo ( MyClass const& );
Run Code Online (Sandbox Code Playgroud)
如果我想更改实例,我是否传递指针或引用?为什么?
无论是.我个人更喜欢引用,指针更紧密地连接到动态分配.
如今,经常使用RAII,因此一个很好的选择是使用智能指针代替.