cpp文件中的函数顺序

时间:2009-08-07 12:01:14

标签: c++ function standards

cpp文件中的函数顺序是否有标准?


有:

  • 全球职能
  • 构造
  • 吸气剂
  • 制定者
  • algoritmic functions
  • if qt,slots
  • 如果是派生类,则覆盖函数
  • 静态功能
  • 我无法命名的任何功能类型......

在cpp文件中,有什么好的订购方式吗?

我按照我在上面列表中所写的顺序订购它们。

我知道它不会改变任何东西,但我关心好看的代码...

你怎么订购?

9 个答案:

答案 0 :(得分:11)

我的个人订单由类声明中的订单给出:

class MyClass 
{
public:
    MyClass();
    ~MyClass();

     void start();

protected:
     static void init(MyClass *);

private:
     int  m_iCounter;   ///< counter variable for....
};

在.cpp中会是这样的:

MyClass::MyClass() :
   m_iCounter(0)
{
   ...
}

MyClass::~MyClass() {
   ...
}

void MyClass::start() {
   ...
}

void MyClass::init(MyClass *) {
    ...
}

订单定义如下:

  1. 构造函数+析构函数
  2. (仅适用于Qt项目:) signals
  3. 公开方法 - 按重要性排序,例如首先是start()stop(),然后是getter和setter
  4. 按重要性排序的受保护方法
  5. 受保护的成员
  6. 私人方法
  7. 私人会员
  8. 希望有所帮助。

    侨, 克里斯

答案 1 :(得分:4)

这可能看起来很愚蠢,但我尝试按“正常'使用顺序”来命令我的公共方法,所以构造函数首先出现,然后是公共doStuff方法,然后是关闭方法......这个“规则”的例外是~destructor,它位于最后一个构造函数之后。

最后是任何私人“助手”方法。

我在所有语言中使用相同的方法......(C ++,Java,C#,Perl,sh或者其他什么)并且没有人实际上为它拍摄(但是)。

干杯。基思。

答案 2 :(得分:3)

我习惯订购的方式来自Symbian平台,订单是:

  • 公共,受保护,私密的方法
  • 公共,受保护,私有变量

之所以这样,是因为扩展已发布的接口以实现向后兼容性的规则。最有可能添加的是私有变量,它们放在类的末尾,这样添加一个新变量就不会改变类中任何其他变量的位置。改变界面的事情然后以“公共,受保护”的顺序出现在此之前。然后为类方法复制排序,尽管这些不会更改类实例中任何变量的内存位置。

不要问虚拟功能指南;)

答案 3 :(得分:3)

现在这远不如以前那么重要。如今所有体面的IDE都具备(或应该具有)通过右键单击或其他简单手势进行定义或引用的能力。搜索代码是浪费时间。

我通常订购它们: 构造函数 析构函数 无论我执行其余的顺序

然后我返回并将逻辑/相关功能组合在一起

在头文件中对相关内容/订单进行分组以提高可读性可能比在cpp文件中更重要。

答案 4 :(得分:2)

在课堂内,语言没有严格的规则。在类之外,您需要确保在两者分开时声明在定义之前。

通常,您会发现与您合作的团队将提出有关源文件的任何格式规则。然而,这只是美学,因为它对程序的实际执行没有影响。

答案 5 :(得分:2)

从最重要到最低:

  • 私人变量(不是开玩笑,他们揭示了你班上的大部分内部运作)
  • 构造
  • 公共方法
  • 受保护的方法
  • 私人方法

方法本身应按其“抽象级别”排序:更高级别:向上,更低级别:向下,换句话说,构建方法以便它们只调用下面的方法。

答案 6 :(得分:2)

我们公司的标准是:

  1. 构造
  2. 公共方法(按字母顺序排序)
  3. 私人方法(按字母顺序排序)

答案 7 :(得分:1)

我使用我的IDE来转发我的cpp文件中的函数,并按字母顺序排序,或者我进行搜索,并在键入时进行搜索,这非常快。

对我来说,工作流程完全没有区别,具体取决于.cpp文件中的函数顺序......

答案 8 :(得分:1)

有时在CPP文件中的未命名命名空间(也称为匿名命名空间)中有一些本地帮助程序函数很方便。如果是这样,我建议将这些功能放在最上面(在CPP文件中),只是为了确保在任何其他可以调用它们的函数之前定义