小编Ste*_*aus的帖子

使用#include将大块重复代码放入单独的文件中是否正常和/或正常?

我一直在解剖一些代码,我看到了一些我以前从未见过的东西,我想知道这是不是一个好/坏的做法,如果这是正常的.

基本上有一个头文件,带有类定义,用于具有一堆(大约90个)纯虚函数的类.这些虚函数有很多,所以它们都放在一个单独的文件中,然后包含在类定义中,如下所示:

foo.h中

class Foo
{
public:
    virtual ~Foo() {};
    #define FOO_VIRTUAL_IMPL = 0
    #include "Foo_prototypes.h"
};
Run Code Online (Sandbox Code Playgroud)

Foo_prototypes.h

#if ! defined(FOO_VIRTUAL_IMPL)
# define FOO_VIRTUAL_IMPL
#endif

virtual void doSomething() FOO_VIRTUAL_IMPL;

virtual void doSomethingElse() FOO_VIRTUAL_IMPL;
Run Code Online (Sandbox Code Playgroud)

使用定义宏也是常见的(即允许相同的包含文件用于纯虚拟和普通虚拟功能)?是经常使用这种东西,还是只是为了节省一点时间/精力的小黑客?

我想这些东西让代码看起来对我来说不太可读,但可能只是因为我不习惯这些技巧,一旦我习惯了它们,我就会更好地阅读这种代码.

有问题的代码是Interactive Brokers的C++ API,如果有人关心在上下文中看到它.相关文件是:EWrapper.h和TestCppClient.h以及EWrapper_prototypes.h.

c++ code-readability

7
推荐指数
3
解决办法
279
查看次数

标签 统计

c++ ×1

code-readability ×1