最も重要なことは一貫性です .このためのコーディング ガイドラインがない場合は、いずれかを選択してそれに固執してください。しかし、あなたのチームがすでに事実上の標準を持っている場合は、それを変更しないでください!
そうは言っても、はるかに一般的なのは
const int* i;
int* const j;
ほとんどの人が書いているので
const int n;
の代わりに
int const n;
補足 -- ポインター const
を簡単に読み取る方法 宣言を右から読むことが重要です。
const int* i; // pointer to an int that is const
int* const j; // constant pointer to a (non-const) int
int const* aLessPopularWay; // pointer to a const int
const
を置く例のクラスがあります タイプの右側にも混乱を避けるのに役立ちます.
typedef にポインター型がある場合、to の constness を変更することはできません。 タイプ:
typedef int * PINT;
const PINT pi;
pi
タイプ int * const
はまだあります 、これは const
をどこに書いても同じです .
スタイルとテクニックに関する B. Stroustrup の FAQ からのこの説明が明確な答えになることを願っています.
Bjarne Stroustrup の C++ スタイルとテクニックに関するよくある質問
私は個人的に好きです:
int const* pi;
int* const pi;
const
だから const であることが意図されている左のトークンを識別します。
そして、そのように smth を使用すると、間違いなく同じ一貫性が保たれます:
int const* const pi;
一貫性のない記述の代わりに:
const int* const pi;
そして、ポインターへのポインターなどがある場合はどうなりますか:
int const* const* const pi;
代わりに:
const int* const* const pi;