我有一个程序可以创建我自己的类的许多实例。然后我操作它们:读取、更改、将它们传递给一些第三方方法等。
一共有三个问题。
我存储的是实例 vector 还是指针 vector ?为什么?
如果我不想更改实例,我是否将实例或指向它的指针传递给函数?为什么?
如果我确实想要更改一个实例,我是传递指针还是引用?为什么?
提前致谢!
类示例:
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();
};
最佳答案
Do I store an array of instances or an array of pointers? Why?
如果 Class
是一个基类,并且您想防止对象切片,您可以存储指针。否则,对象。
If i do not want to change an instance do I pass to the function an instances or pointers to it? Why?
如果按值传递,则不会修改原始对象,因为您正在处理拷贝。如果传递指针或引用,则将其标记为常量:
void foo ( MyClass const* );
void foo ( MyClass const& );
If i do want to change an instance, do i pass a pointer or a reference? Why?
要么。我个人更喜欢引用,指针与动态分配的联系更紧密。
现在经常使用 RAII,因此一个很好的替代方法是使用智能指针。
关于C++ 实例 VS 指针 VS 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11897094/