对不起,如果这是一个愚蠢的问题,我是这些东西的新手: - )
我正在开发一个使用以下参考约定的C ++代码库:
据我所知,他们的意思相同。
这些中的哪一个是首选的,还是强制性的?
我不喜欢不得不选择其中一种的含糊不清。
我找到的答案最接近http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Reference_Arguments,它使用& var布局。
答案 0 :(得分:3)
从语言或编译器的角度来看,两者完全相同。对于组项目,您必须使用组样式。对于个人项目,您可以自由选择。
虽然很难,但就这些主题而言,我总是试着记住来自C++ Coding Standards: 101 Rules, Guidelines, Best Practices的规则#0:
不要为小东西出汗。 (或者:知道什么不要标准化。)
如果我有灵活选择,那么就个人而言,我总是喜欢在'*','&','='等两边都有空格,所以我把它写成
const Name & var;
(另外,我从不在一行中声明两个变量。)
答案 1 :(得分:2)
这两个是等价的。差异纯粹是风格之一。
如果您发现自己在一行中声明了多个变量,那么 const Name &var
非常有用:
const Name &var, foo, &bar;
Foo是一个名称,但var和bar是对名称的引用。
但是,在一行中声明多个变量通常不赞成。
const Name& var
使我们更清楚地知道我们正在处理引用类型(因为引用符号位于类型名称中)。
因此,选择您喜欢哪种风格,并保持一致。使用一致的风格远比使用哪种风格重要。
答案 2 :(得分:1)
正如thyrgle所说,如果项目或文件集使用共同的样式,请使用该样式。但如果您可以自由选择,那么我认为T const& v;
更可取。 const
展示位置,因为它会推广到包含多个const
和&
展示位置的更复杂的声明,因为在C ++中,焦点在于类型,因为尝试声明它不太自然一个声明中有两个或多个变量。 : - )
干杯,
- Alf
答案 3 :(得分:0)
只要您不涉及模板和运算符,C ++就不关心空白,这对您来说似乎还有一段时间了。简而言之,它们的意思相同,我个人更喜欢“const Name& var”。
答案 4 :(得分:0)
编译器完全相同。
使用你最喜欢的那个。
我更喜欢“const Name& var”,因为对于两个或更多变量来说它看起来更好:“const Name& var,& var2,var3;”例如。
答案 5 :(得分:0)
C ++并不关心空格,所以每个空格都完全相同。但是,您应该使用您的公司或项目主持人正在使用的那个。例如:如果我在Google工作,我会使用& var布局,因为你需要保持一切与他们的风格一致。