18

私はしばらくの間、このようなファイルを作成してきました: 順序は意味がありますか? または、名前空間と #includes を交換する必要があり、その理由.

#ifndef CLASSNAME_H // header guards
#define CLASSNAME_H

#include "a.h" // includes in alphabetical order
#include "b.h" // user specified includes first
#include "c.h"
#include <vector> // then library includes

namespace MyNamespace
{
    class ClassName
    {

    };
}

#endif
4

2 に答える 2

12

はい。よさそうですね。

ヘッダーの順序は異なりますが(ただし、アルファベット順で問題ありません)。

私が変更する唯一のことは、インクルード ガードです。名前空間とクラス名をインクルードします。何度か、同じコードで使用されている同じ名前の (ただし名前空間が異なる) クラスがあります。

#ifndef MY_COMPANY_MY_NAME_SPACE_MYCLASSNAME_H // header guards
#define MY_COMPANY_MY_NAME_SPACE_MYCLASSNAME_H

#include "a.h" //   includes in order of most specific to most general.

               //   My includes first.
               //   Then C++ headers          <vector>
               //        I group all the containers together.
               //   Then C specific headers   <sys/bla.h>
               //   Then C generic headers    <ctype.h>


namespace MyNamespace
{
    Class ClassName
    {

    };
}

#endif
于 2011-10-03T17:01:08.327 に答える
4

あなたが書いたことは完璧です。順番を変える必要はないと思います。

于 2011-10-03T16:58:03.343 に答える