【初心者歓迎】C/C++室 Ver.72【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.72【環境依存OK】 - 暇つぶし2ch981:デフォルトの名無しさん
10/05/20 16:20:56
只今C++の勉強中で
クラスの継承と一緒にメンバ関数のオーバーライドが出来るとあるのですが、
これを使う意味ってあるのでしょうか?

class ctest{
int m;
char *p;
public:
virtual int put(char *); //pに文字列を入れる関数
}

class stestSub : public ctest{

public:
int put(char *); //pに文字列を入れる関数(全て小文字に変換)
}

ctest s1;
s1.put("ABced");

stestSub s2;
s2.put("zxcVB");

以上のように定義してしまうと、s2からメインクラスのputを使う事が出来なくなるし、
別名でサブクラスに新たにput2()などで定義したほうがいいのではないでようか?

同じ名前で別の機能を持たせる意味が分からないのですが、どのような時に使用
するものなのでしょうか?
継承したプログラマがこの関数名はこの機能を持たせたいとか、そういったレベル
で同じ名前にしているのか?と思っているのですが。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch