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

时间:2009-11-21 18:24:27

标签: c++ function coding-style naming-conventions

在C ++中命名函数的惯例是什么?

我来自Java环境,所以我通常命名为:

myFunction(...) {
}

我在C ++中看到了混合代码,

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

正确的方法是什么?

此外,对于类方法和非类方法,它是否相同?

11 个答案:

答案 0 :(得分:39)

没有'正确的方法'。虽然有一些约定,但它们在语法上都是正确的。您可以关注Google style guide,尽管还有其他人。

来自上述指南:

  

常规功能情况喜忧参半;访问器和mutator匹配变量的名称:MyExcitingFunction(),MyExcitingMethod(),my_exciting_member_variable(),set_my_exciting_member_variable()。

答案 1 :(得分:34)

从C ++ 11开始,您可能希望将snake_casecamelCase 用于函数名称

这是因为要使一个类作为range-based for-loop中的范围表达式工作,您have to定义了名为beginend(区分大小写)的函数那个班。

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

答案 2 :(得分:25)

我见过的大部分代码都是camelCase函数(小写首字母)和ProperCase/PascalCase类名,以及(最常见的)snake_case个变量。

但是,说实话,这只是指导。最重要的是在整个代码库中保持一致。选择看似自然/适合你的东西,并坚持下去。如果您正在加入正在进行的项目,请遵循他们的标准。

答案 3 :(得分:15)

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

myFunctionName     // lower camel case

MyFunctionName     // upper camel case

my_function_name   // K & R ?

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

E.g。 ex-java程序员倾向于使用较低的驼峰案例来实现函数

答案 4 :(得分:11)

如果你看一下standard libraries the pattern generally is my_function,但每个人似乎都有自己的方式: - /

答案 5 :(得分:5)

与Java不同,C ++没有“标准样式”。我曾经工作的几乎所有公司都有自己的C ++编码风格,大多数开源项目也都有自己的风格。您可能需要查看的一些编码约定:

值得注意的是,C ++编码标准通常会指定不使用语言的哪些部分。例如,Google C ++样式指南说“我们不使用C ++例外”。我工作过的几乎所有地方都禁止使用C ++的某些部分。 (我工作的一个地方基本上说,“用C编程,但是newdelete没问题”!)

答案 6 :(得分:4)

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

答案 7 :(得分:4)

正如其他人所说,C ++中没有这样的东西。话虽如此,我倾向于使用标准库编写的风格 - K& R上。

另外,see the FAQ entry by Bjarne Stroustrup

答案 8 :(得分:3)

按照自己的意愿行事,只要你的开发人员保持一致。组。 每隔几年公约就会改变.....(remmeber nIntVAr)......

答案 9 :(得分:3)

没有那么多'正确'的语言方式。这是个人偏好或您的团队的标准。我在做自己的代码时经常使用myFunction()。另外,你在C ++中经常看到的一种风格是my_function() - 没有大写字母,下划线而不是空格。

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

答案 10 :(得分:2)

这完全取决于你对正确的定义。您可以通过多种方式评估编码风格。可读性是一个重要的(对我而言)。这就是我使用my_function方式编写函数名和变量名的原因。