C ++中的函数名称:是否大写? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++中的函数名称:是否大写? [关闭]相关的知识,希望对你有一定的参考价值。

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

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

myFunction(...) {
}

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

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

什么是正确的方法?

另外,对于类方法还是非类方法,它是一样的吗?

答案

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

来自上述指南:

常规功能有大小写;访问器和mutator匹配变量的名称:MyExcitingFunction(),MyExcitingMethod(),my_exciting_member_variable(),set_my_exciting_member_variable()。

另一答案

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

另一答案

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

实际上它只是由您工作的代码决定的。或者,如果它是您自己的项目,那么您自己的个人偏好。

另一答案

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

另一答案

从C ++ 11开始,您可能希望使用snake_casecamelCase作为函数名。

这是因为要使一个类作为range-based for-loop中的range-expression工作,你have to为该类定义了名为beginend(区分大小写)的函数。

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

另一答案

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

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

另一答案

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

myFunctionName     // lower camel case

MyFunctionName     // upper camel case

my_function_name   // K & R ?

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

例如。前java程序员倾向于使用较低的驼峰案例来实现功能

另一答案

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

另一答案

就个人而言,我更喜欢thisStyleThisStyle的功能。这真的是为了个人品味,可能受Java影响,但我非常喜欢功能和类看起来不同。

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

该约定还避免了C ++继承的函数 - 同名 - 一个类不是错误的惨败,因为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;
    f.b = Bar();
    // outputs 23
    std::cout << f.b.a << "
";
    // This line doesn't compile. The function has hidden the class.
    // Bar b;
}

毕竟,Bar既是名词又是动词,因此可以合理地定义为一个地方的一个阶级和另一个地方的一个功能。显然,有更好的方法可以避免冲突,例如正确使用命名空间。正如我所说,实际上,这只是因为我更喜欢具有小写首字母的函数外观,而不是因为实际上需要将它们与类区分开来。

另一答案

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

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

另一答案

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

另一答案

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

还有,see the FAQ entry by Bjarne Stroustrup

以上是关于C ++中的函数名称:是否大写? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何优化C ++代码的以下片段 - 卷中的零交叉

C ++中的动态源代码[关闭]

你可以使用 c 代码读取 .txt 文件大小吗? [关闭]

断言与 C/C++ 中的调试有啥关系? [关闭]

C/C++源代码可视化? [关闭]

Objective C 中的 Get Big Endian 函数是啥样的? [关闭]