Cpp クラス const 新しいページはコチラ
提供: yonewiki
(→constメンバ関数) |
|||
157行: | 157行: | ||
==constメンバ関数== | ==constメンバ関数== | ||
− | ★2.★3.★4.の部分の内、★3.★4.のように関数名の最後にconstと記述するようなメンバ関数をconstメンバ関数と呼んでいます。メイン関数側の★6.部分のように呼び出し側のクラスオブジェクトそのものがすでにconstで定義されているか、どうかによって動作が変わる関数と考えていいと思います。★6.部分のようにconstで定義されている場合には★3.や★4.のようなconstメンバ関数として、メンバ関数内でメンバ変数を書き換えないことを保証した関数しか呼び出すことが出来ないオブジェクトになっています。★5.部分のようなconstで定義されていないオブジェクトであれば、★2.でも★3.でも★4.でも、つまりconstメンバ関数であっても、★9.部分のように、そうでなくても呼び出すことはできます。★2.と★4. | + | ★2.★3.★4.の部分の内、★3.★4.のように関数名の最後にconstと記述するようなメンバ関数をconstメンバ関数と呼んでいます。メイン関数側の★6.部分のように呼び出し側のクラスオブジェクトそのものがすでにconstで定義されているか、どうかによって動作が変わる関数と考えていいと思います。★6.部分のようにconstで定義されている場合には★3.や★4.のようなconstメンバ関数として、メンバ関数内でメンバ変数を書き換えないことを保証した関数しか呼び出すことが出来ないオブジェクトになっています。★5.部分のようなconstで定義されていないオブジェクトであれば、★2.でも★3.でも★4.でも、つまりconstメンバ関数であっても、★9.部分のように、そうでなくても呼び出すことはできます。★2.と★4.のように同じ関数名でconstメンバ関数か、そうでない普通のメンバ関数かだけが違うような同名の関数を定義できます。同名の関数がある場合は、特にどちらを呼び出すかを指定しなくてもオブジェクトがconstであれば、constメンバ関数が選ばれて呼び出されます。通常のオブジェクトなら通常のメンバ変数が選ばれて呼び出されます。このように自動的に利用される関数が振り分けられる仕組みを利用し、同じ関数名で二つ目の関数を定義することを関数のオーバーロードと呼びます。 |
167行: | 167行: | ||
プロトタイプ宣言(xxx.hファイル側の記述)をするときにもconstメンバ関数には、関数名の定義の後ろにconstのキーワードを記述する必要があります。 | プロトタイプ宣言(xxx.hファイル側の記述)をするときにもconstメンバ関数には、関数名の定義の後ろにconstのキーワードを記述する必要があります。 | ||
− | |||
==constメンバ変数== | ==constメンバ変数== |