cpp文件中的函数顺序是否有标准?
有:
在cpp文件中,有什么好的订购方式吗?
我按照我在上面列表中所写的顺序订购它们。
我知道它不会改变任何东西,但我关心好看的代码...
你怎么订购?
答案 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 *) {
...
}
订单定义如下:
signals
start()
和stop()
,然后是getter和setter 希望有所帮助。
侨, 克里斯
答案 1 :(得分:4)
这可能看起来很愚蠢,但我尝试按“正常'使用顺序”来命令我的公共方法,所以构造函数首先出现,然后是公共doStuff方法,然后是关闭方法......这个“规则”的例外是~destructor,它位于最后一个构造函数之后。
最后是任何私人“助手”方法。
我在所有语言中使用相同的方法......(C ++,Java,C#,Perl,sh或者其他什么)并且没有人实际上为它拍摄(但是)。
干杯。基思。
答案 2 :(得分:3)
我习惯订购的方式来自Symbian平台,订单是:
之所以这样,是因为扩展已发布的接口以实现向后兼容性的规则。最有可能添加的是私有变量,它们放在类的末尾,这样添加一个新变量就不会改变类中任何其他变量的位置。改变界面的事情然后以“公共,受保护”的顺序出现在此之前。然后为类方法复制排序,尽管这些不会更改类实例中任何变量的内存位置。
不要问虚拟功能指南;)
答案 3 :(得分:3)
现在这远不如以前那么重要。如今所有体面的IDE都具备(或应该具有)通过右键单击或其他简单手势进行定义或引用的能力。搜索代码是浪费时间。
我通常订购它们: 构造函数 析构函数 无论我执行其余的顺序
然后我返回并将逻辑/相关功能组合在一起
在头文件中对相关内容/订单进行分组以提高可读性可能比在cpp文件中更重要。
答案 4 :(得分:2)
在课堂内,语言没有严格的规则。在类之外,您需要确保在两者分开时声明在定义之前。
通常,您会发现与您合作的团队将提出有关源文件的任何格式规则。然而,这只是美学,因为它对程序的实际执行没有影响。
答案 5 :(得分:2)
从最重要到最低:
方法本身应按其“抽象级别”排序:更高级别:向上,更低级别:向下,换句话说,构建方法以便它们只调用下面的方法。
答案 6 :(得分:2)
我们公司的标准是:
答案 7 :(得分:1)
我使用我的IDE来转发我的cpp文件中的函数,并按字母顺序排序,或者我进行搜索,并在键入时进行搜索,这非常快。
对我来说,工作流程完全没有区别,具体取决于.cpp文件中的函数顺序......
答案 8 :(得分:1)
有时在CPP文件中的未命名命名空间(也称为匿名命名空间)中有一些本地帮助程序函数很方便。如果是这样,我建议将这些功能放在最上面(在CPP文件中),只是为了确保在任何其他可以调用它们的函数之前定义。