Cpp クラス アクセス指定子 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(クラス アクセス指定子)
 
1行: 1行:
 +
[[C PlusPlus#C++からの技術|C++]]に戻る
 +
 +
 
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner">
 
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner">
 
<tr>
 
<tr>
 
<td style="width:1px;"></td>
 
<td style="width:1px;"></td>
<td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++ クラス アクセス指定子</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td>
+
<td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++(Cpp) クラス アクセス指定子</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td>
 
</tr>
 
</tr>
 
</table>
 
</table>
8行: 11行:
 
<br />
 
<br />
 
== '''クラス アクセス指定子''' ==
 
== '''クラス アクセス指定子''' ==
 +
 
クラス宣言をするヘッダファイル側で指定するアクセス指定子は、クラスの利用時の基本的な制約を指定するものです。クラスとはじめて向き合った人は、なんのこっちゃわからんという感じになりやすい部分だと思います。クラスを利用するときの基本的な使い方を理解していないと、どうしても、このアクセス指定子の意味がわかり辛く感じるのだと思います。クラスの基本的な利用方法については既に[[Cpp クラス|クラス]]の項目に記述しましたので、軽く理解しておいたほうが良いと思います。クラスで行われる隠蔽の技術の解説についてもこの項目で長々と記述する予定です。まずは簡単な説明から記述します。
 
クラス宣言をするヘッダファイル側で指定するアクセス指定子は、クラスの利用時の基本的な制約を指定するものです。クラスとはじめて向き合った人は、なんのこっちゃわからんという感じになりやすい部分だと思います。クラスを利用するときの基本的な使い方を理解していないと、どうしても、このアクセス指定子の意味がわかり辛く感じるのだと思います。クラスの基本的な利用方法については既に[[Cpp クラス|クラス]]の項目に記述しましたので、軽く理解しておいたほうが良いと思います。クラスで行われる隠蔽の技術の解説についてもこの項目で長々と記述する予定です。まずは簡単な説明から記述します。
  
102行: 106行:
 
まずはアクセス指定子の具体的な利用部分について説明しておきます。
 
まずはアクセス指定子の具体的な利用部分について説明しておきます。
  
★1.部分のようにアクセス指定子を記述しないでクラスの中の定義を書き始めると、その部分はprivateを指定したのと同じ意味で変数や関数が定義されます。クラス内部からしか呼び出し出来ないという表現をしましたが、内部というキーワードについてはもう少し後での説明になります。変数名のプレフィックス(接頭語)としてm_をつけるのはクラスの使い方における基本的な変数命名法として定着しているものです。あとは自分独自の命名法になります。このWikiの記事を最初から全部読んでいる人には、管理人の独自の命名法について説明したと思いますので、それについては割愛します。変数名の付け方は自由です。ちょっとわかりにく日本語を使うなら任意(にんい)ともいいますね。
+
★1.部分のようにアクセス指定子を記述しないでクラスの中の定義を書き始めると、その部分はprivateを指定したのと同じ意味で変数や関数が定義されます。クラス内部からしか呼び出し出来ないという表現をしましたが、内部というキーワードについてはもう少し後での説明になります。変数名のプレフィックス(接頭語)としてm_をつけるのはクラスの使い方における基本的な変数命名法として定着しているものです。あとは自分独自の命名法になります。このWikiの記事を最初から全部読んでいる人には、管理人の独自の命名法について説明したと思いますので、それについては割愛します。変数名の付け方は自由です。ちょっとわかりにくい日本語を使うなら任意(にんい)ともいいますね。
  
  
332行: 336行:
  
  
今回のように★5.の部分でpublicが指定されている場合は、アクセス指定子は基本クラスの内容と変わらずに使えることになります。したがった_tmain関数からも基本クラスの変数でpublicが定義されている変数や関数を呼び出すことができるためSet_m_nValueにアクセスできます。publicが指定されているからと言って格上げされることはないため、privateやprotectedの変数や関数は呼び出しできません。基本クラスで指定したアクセス指定がそのままだということです。
+
今回のように★5.の部分でpublicが指定されている場合は、アクセス指定子は基本クラスの内容と変わらずに使えることになります。したがって、_tmain関数からも基本クラスの変数でpublicが定義されている変数や関数を呼び出すことができるためSet_m_nValueにアクセスできます。publicが指定されているからと言って格上げされることはないため、privateやprotectedの変数や関数は呼び出しできません。基本クラスで指定したアクセス指定がそのままだということです。
  
  
 
★5.の部分でprotectedが指定された場合は、publicで指定されていた部分がprotectedのレベルに引き下げられ、やはり_tmain関数からは呼び出しができなくなります。派生クラスからは、publicとprotectedの両方のアクセスレベルのものへ呼び出しができます。
 
★5.の部分でprotectedが指定された場合は、publicで指定されていた部分がprotectedのレベルに引き下げられ、やはり_tmain関数からは呼び出しができなくなります。派生クラスからは、publicとprotectedの両方のアクセスレベルのものへ呼び出しができます。
 +
 +
 +
以上でアクセス指定子の説明は終了です。ここのサンプルで登場した1000倍したり1000分の1にしたりして単位を制御しようとか考えたクラスはこのまま放置するかもしれませんし、ひょっとしたら、このあとの記事で使いまわしてみるかもしれません。あまりサンプルに意味をもたせると、プログラムの内容にばかり理解力が奪われ、本来、簡単に深く知りたかったはずの事柄がないがしろになる恐れもあるという。どうしようか迷ってます。プログラム技術の説明って、いろいろと難しい。時間が有り余っている人は、単位変換まで含めてものすごいクラスを作っちゃってください。速度[m/s]* 時間[s] = 距離[m]とか、全部もうらすると科学技術計算が少しわかりやすくなるかもです。既にあるかもしれませんが。たかがサンプルでそういうことをしようかと思ったりして、壮大すぎる(汗。
 +
 +
 +
[[C PlusPlus#C++からの技術|C++]]に戻る

2021年2月6日 (土) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス