C ++上部と下部のconstのconst

トップのconst:ポインタ自体が一定で表しています。

下のconst:オブジェクトへのポイントが一定であることポインター。

ポインタ型は、上部層は下部のconst constのいずれであってもよいとすることができます

私は0を= int型。

int型のconst * P1 =&I; // p1はトップのconstである、変更することはできません

INT CONST P2 = 4; // p2はトップCONSTとして、変更することができません

int型のcosnt * P3 =&P2 // p3の根底にあるのconstとして、変更することができます

CONST INT * CONST P4 = P3; // constがCONST P4すなわち上層は下層CONSTである上層cosnt第CONST CONST、第一底部層です。

コピー操作の実装では、トップレベルのconstが影響されないが、根底にあるCONSTが大きく、CONSTの基本動作のコピーに影響を与え、オブジェクトが同じ基本CONSTの資格を持っている必要があります外試験に入院しました。

int型* P = P4 //誤動作、指示対象のconst int型、int型の基本的な意味を含んでのconst P4とpが普通です

そして、:

P3 = P4 //正しい、両方の基礎となります

定数式が宣言変数constexprのに使用することができます決定するために、C ++ 11で、追加。

 

おすすめ

転載: www.cnblogs.com/zhangli07/p/11960242.html