Read accessorを定義/実装する際に、意図的にconst宣言をすることにより、誤ってメンバー変数の内容を書き換える記述をしてしまうことを未然に防ぐことができます。
C++では、メンバ関数の宣言の後に「const」を付与することにより、そのメンバ関数がクラスのインスタンス内メンバ変数を書き換えないことを宣言することができます。
const宣言の方法は以下の通りです。
#include <stdio.h> class Number { private: int iNumber; public: int getNumber() const { this->iNumber=8; // ← 誤ってメンバ変数を書き換えると… return(this->iNumber); } public: void setNumber(int aNumber) { this->iNumber=aNumber; } }; void main() { Number *tNumber=new Number(); tNumber->setNumber(5); printf("tNumber->getNumber() : %d\n",tNumber->getNumber()); delete tNumber; }
上記のように、メンバ関数にconst宣言を行った状態で、そのメンバ関数内でメンバ変数の値を変更しようとすると、コンパイラレベルでエラーが発生します。
上記のコードでは、逆にconst宣言をはずすと、コンパイルは問題なく通ってしまいます。
このため、プログラムの設計上、Read accessorとしてメンバ関数を実装する際には、const宣言をしておくと、意図しない間違いをコンパイラレベルで検出することができます。
是非ともお試しください。
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。