Cpp クラス const 新しいページはコチラ
提供: yonewiki
(ページの作成:「<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> <tr> <td style="width:1px;"></td> <td class="mbox-tex...」) |
(→クラス const) |
||
12行: | 12行: | ||
constキーワードは大きなクラスや標準的に配布されるプログラムでも積極的に使われていますので、クラスに関連するところで、このキーワードが使われた時、どういった効力があって、何が保護されるのかを理解しておかないと、値を変更する手順の考え方の齟齬がクラス開発者とそれを利用する人の中で発生したり、クラス開発者自身の中でうまく、保護がかけられていない状態になったりします。 | constキーワードは大きなクラスや標準的に配布されるプログラムでも積極的に使われていますので、クラスに関連するところで、このキーワードが使われた時、どういった効力があって、何が保護されるのかを理解しておかないと、値を変更する手順の考え方の齟齬がクラス開発者とそれを利用する人の中で発生したり、クラス開発者自身の中でうまく、保護がかけられていない状態になったりします。 | ||
+ | |||
+ | |||
+ | [[C キャスト|キャスト]]の記事でもconst外しの解説あたりで、ポインタの中身のconstとポインタ変数自身のconstについて紹介しましたが、ここでも改めてconstの基本について復習しておきます。 | ||
+ | |||
+ | *定数変数の定義 | ||
+ | :const int nSize = 1000; | ||
+ | :もしくは | ||
+ | :int const nSize = 1000; | ||
+ | |||
+ | *ポインタでの定数変数(アドレス差し替えによる中身の変更発生はOK) | ||
+ | :const int* pnSize = &pnSize2; | ||
+ | :もしくは | ||
+ | :int const * pnSize = &pnSize2; | ||
+ | const宣言されていないポインタ変数に上記のような方法で宣言された変数のアドレスを代入することもできません。その代入して移し替えたポインタ変数から中身が変更される可能性が生じるためです。 | ||
+ | |||
+ | *アドレス変更できないポインタでの定数変数 | ||
+ | :const int * const pnSize = new int(1000); | ||
+ | :もしくは | ||
+ | :int const * const pnSize = new int(1000); | ||
+ | |||
+ | となります。そしてキャストでは、このconst外しなる、奥の手があることも説明しました。 | ||
+ | |||
+ | |||
+ | それではクラスにおけるconstにはどのようなものがあるのか見てみましょう。 |