【发布时间】:2017-10-30 04:10:31
【问题描述】:
根据 Google C++ Style guide,
C/C++ 函数的参数要么是函数的输入,要么是函数的输出,或者两者兼而有之。输入参数通常是值或 const 引用,而输出和输入/输出参数将是指向非 const 的指针
事实上,在 Google 代码中,输入参数是值或 const 引用,而输出参数是指针,这是一个非常严格的约定。输入参数可以是 const 指针
reference 应该始终保持不变。如果我有一个要更新的对象向量会发生什么?我应该遵循指南并使用指向矢量的指针吗?如果对象数据也将更新,会发生什么?我是否应该使用指向对象指针向量的指针,例如std::vector*?我觉得这个约定很奇怪。
我是否误解了它,或者这是正确的做法(这意味着这确实是指南告诉人们要做的)?
【问题讨论】:
-
(几乎总是) 永远不要使用指向向量的指针。 Vector 已经拥有指向其数据的指针。
-
@Galik std::vector
-
如果您有问题,我会添加指南中的文字。也许他们列出了一些优点和缺点。坦率地说,我不认为这是一个好主意。
-
不,只需
std::vector<Object>并使Object可移动(除非您需要多态性) -
如果您打算在 Google 找到一份工作,那么您应该采用他们的风格指南。如果您没有在 Google 找到工作的计划,他们的风格指南与 Joe Q Random 的风格指南一样可信。在适当的时候传递对向量的可变引用并没有错。