传递许多变量的最佳实践

时间:2015-09-14 13:28:18

标签: c++

假设我有一个班级Character:它包含许多private变量,例如positionX, PositionY, Atk, Def, Agi, Velocity,并且必须将其传递给处理和更改此Character个变量的函数。 由于它有很多变量,我如何传递这些变量?我应该为每个变量制作getter和setter吗?关于这个的最佳做法是什么?

我正在考虑创建一个包含所有这些变量的struct类,所以我可以通过那个struct类,但我不知道这是不是一个好习惯。

2 个答案:

答案 0 :(得分:5)

如果只传递结构,它将被复制。好的做法是将其作为引用或作为const引用传递,或者甚至作为shared_ptr

传递
void foo(const MyStruct& ms);
void foo(MyStruct& ms);
void foo(std::shared_ptr<MyStruct> ms);

答案 1 :(得分:2)

如果你的函数修改私有变量,那么函数应该是一个成员函数。

如果这不合适,那么你可以将该函数声明为该类的朋友。

如果您有许多不能成员但需要访问成员变量的函数,并且您不需要封装,那么请考虑将成员公开。