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 />
 
== '''クラス メンバ関数ポインタ''' ==
 
== '''クラス メンバ関数ポインタ''' ==
 +
 
メンバ関数ポインタは関数ポインタの拡張的な考え方だと思えば良いです。関数ポインタと全く同じではないので、使い方を覚えないと駄目です。といっても関数ポインタ自体もそれほど活用されているという風には思わない技術ですが、使ってる人は使ってるし、これをうまく使いこなす頭のいい人もいるのは確かです。というわけで、このクラスのメンバ関数ポインタも一応、抑えておきます。
 
メンバ関数ポインタは関数ポインタの拡張的な考え方だと思えば良いです。関数ポインタと全く同じではないので、使い方を覚えないと駄目です。といっても関数ポインタ自体もそれほど活用されているという風には思わない技術ですが、使ってる人は使ってるし、これをうまく使いこなす頭のいい人もいるのは確かです。というわけで、このクラスのメンバ関数ポインタも一応、抑えておきます。
  
70行: 74行:
  
  
コメント文に★印を入れました。★1.部分のように名前解決をするためにポインタ変数名の前にクラス名を入れたり、★2.部分の代入のときにもアドレス演算子付きで名前解決演算子とともに関数名を指定したり、★3部分の呼び出しでもthisポインタによってポインタの指し示す内容がメンバ関数であり名前解決をすることを実施するような構文になっています。他の通常のポインタと区別する部分であったり、クラス独自の名前解決を必要とする都合を考えればこうするしかなさそうなルールです。あえて、置き換えれる部分があるとしたら★3.部分はアロー演算子を利用しているだけなので
+
コメント文に★印を入れました。★1.部分のように名前解決をするためにポインタ変数名の前にクラス名を入れたり、★2.部分の代入のときにもアドレス演算子付きで名前解決演算子とともに関数名を指定したり、★3部分の呼び出しでもthisポインタによってポインタの指し示す内容がメンバ関数であり名前解決をすることを実施するような構文になっています。thisポインタについても別の記事で詳細は解説の予定ですが、クラスが変数として定義されたり、ポインタによってクラス変数が実体化されたときに自分自身のアドレスを保持する特別な変数がthisポインタです。このthisというキーワードのポインタ変数に実体化された時のアドレスが格納されています。★3.部分のように記述しなければメンバ関数を呼び出せないのは、通常省略できるthisポインタによる指定が必須になるあたりは、なんだかややこしく感じますが、他の通常のポインタと区別する部分であったり、クラス独自の名前解決を必要とする都合を考えればこうするしかなさそうなルールです。あえて、置き換えれる部分があるとしたら★3.部分はアロー演算子を利用しているだけなので
  
  
86行: 90行:
  
 
どういう風に記述するかは、人がきめることだし、文法上は便利だから用意されているものなので、どういうプログラムが正しいとか、そういうのはありませんし、なんでもありです。せめて人が書いたプログラムを理解できる程度に頭を鍛えるしかないです。
 
どういう風に記述するかは、人がきめることだし、文法上は便利だから用意されているものなので、どういうプログラムが正しいとか、そういうのはありませんし、なんでもありです。せめて人が書いたプログラムを理解できる程度に頭を鍛えるしかないです。
 +
 +
 +
[[C PlusPlus#C++からの技術|C++]]に戻る

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



個人用ツール
名前空間

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