函数名称在C ++中:是否大写?

C ++中命名函数的约定是什么?

我来自Java环境,所以我通常是这样命名的:

myFunction(...) { } 

我看过C ++中的混合代码,

 myFunction(....) MyFunction(....) Myfunction(....) 

什么是正确的方法?

另外,类方法和非类方法是一样的吗?

没有一个“正确的方式”。 尽pipe有一些约定,但它们在语法上都是正确的。 你可以按照谷歌风格指南 ,但也有其他人。

从上述指南:

常规职能混合案例; 访问器和增变器匹配variables的名称:MyExcitingFunction(),MyExcitingMethod(),my_exciting_member_variable(),set_my_exciting_member_variable()。

由于C ++ 11,你应该使用snake_casecamelCase 作为函数名称

这是因为要使一个类在基于范围的for循环中作为范围expression式工作,必须为该类定义名为beginend (区分大小写)的函数。

因此,使用例如PascalCase作为函数名称,意味着如果您需要使用基于范围的for工作类,则必须打破项目中的命名一致性。

我见过的大多数代码是camelCase函数(小写字母首字母)和ProperCase/PascalCase类名,以及(通常是) snake_casevariables。

但是,说实话,这只是指导。 最重要的一点是在您的代码库中保持一致。 select看起来很自然/为你工作,并坚持下去。 如果您正在join正在进行的项目,请遵循其标准。

我在生产代码中看到的最常见的是(按此顺序):

 myFunctionName // lower camel case MyFunctionName // upper camel case my_function_name // K & R ? 

我发现程序员在C ++代码中使用的命名约定通常与编程背景有关。

例如,前Java程序员倾向于使用较低的骆驼案件的function

如果你看标准的库,模式通常是my_function ,但每个人似乎都有自己的方式: – /

我认为这是一个偏好的问题,虽然我更喜欢myFunction(...)

正如其他人所说,C ++中没有这样的事情。 话虽如此,我倾向于使用写入标准库的风格 – K&R.

另请参阅Bjarne Stroustrup的FAQ条目 。

就个人而言,我更喜欢thisStyle ThisStylefunction的ThisStyle 。 这实际上是为了个人的品味,可能是受Java影响的,但我很喜欢function和类别看起来不同。

但是,如果我不得不争论它,那么我认为这个区别不仅仅是审美。 当你遇到一个临时性的函数式构造时,它会节省一点点思考。 相反,你可以争辩说, Foo(1,2,3)是否是一个函数调用并不重要 – 如果它是一个构造函数,那么它的行为就像一个函数返回一个Foo的值。

这个约定还避免了C ++inheritance的function与同名的一类不是一个错误的失败,因为C有一个单独的标记名称空间:

 #include <iostream> struct Bar { int a; Bar() : a(0) {} Bar(int a) : a(a) {} }; struct Foo { Bar b; }; int Bar() { return 23; } int main() { Foo f; fb = Bar(); // outputs 23 std::cout << fba << "\n"; // This line doesn't compile. The function has hidden the class. // Bar b; } 

毕竟,酒吧既是名词也是动词,所以可以合理地将它定义为一个地方的一个类,另一个地方的一个function。 显然有更好的方法来避免冲突,比如正确使用名字空间。 所以,正如我所说的那样,实际上只是因为我更喜欢小写字母的function,而不是因为实际上有必要将它们与类别区分开来。

按照你的意愿去做,只要你的开发者一致。 组。 每隔几年会议的变化…..(remmeber nIntVAr)…

这种语言没有太多“正确”的方法。 这是更多的个人喜好或你的团队的标准是什么。 当我正在做我自己的代码时,我通常使用myFunction()。 另外,你没有提到你会经常在C ++中看到的风格是my_function() – 没有大写字母,而是用空格来代替下划线。

真的,这只是由你工作的代码决定的。或者,如果这是你自己的项目,那么你自己的个人喜好。

与Java不同,C ++没有“标准风格”。 我曾经工作过的很多公司都有自己的C ++编码风格,而且大多数开源项目也都有自己的风格。 一些编码习惯你可能想看看:

  • GNU编码标准 (主要是C,但是提到C ++)
  • Google C ++风格指南
  • C ++编码标准:101规则,指南和最佳实践

有趣的是,C ++编码标准通常指定不使用该语言的哪一部分。 例如,Google C ++风格指南中提到“我们不使用C ++exception”。 我工作的几乎所有地方都禁止C ++的某些部分。 (我工作的一个地方基本上说,“用C编程,但是newdelete都可以!”)

这一切都取决于你的正确定义。 有很多方法可以评估你的编码风格。 可读性是一个重要的(对我来说)。 这就是为什么我会用函数名和variables名写my_function方法。