ホーム » スタッフ » 斉藤徹 » 継承の説明

2004年6月
« 5月   7月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

継承の説明

隠蔽化の次のネタということで、継承(inheritance)・導出の説明。 社員・上司・社長といったデータ例を説明し、 C言語レベルで社員を要素に持つ上司という構造体を作ると、 上司のデータアクセスに余計な手間がかかる例を説明。 こういった共通部分が多いけど、 オプショナルな要素を加えた新規データの事例が多いことを説明。 このなかで GUI などの事例で、OOPが成功したことを話す。

以下のようなプログラムを示し、基底クラス、派生(導出)クラス といった用語を説明する。 別表現でスーパークラス・サブクラスなどの用語も示す。

class Syain {  // 日記の都合上、1行書きスタイル
private:
char name[ 30 ] ;
int  age ;
public:
void set( char s[] , int a ) { strcpy( name , s ) ; age = a ; }
void print() { printf( "%s %d" , name , age ) ; }
} ;
class Jyoshi : public Syain {
private:
Syain *buka[ 10 ] ;
int   size ;
public:
Jyoshi() { size = 0 ; }
void add( Syain* p ) { buka[ size++ ] = p ; }
} ;
void main() {
Syain  a ; a.set( "斉藤" , 39 ) ;
Syain  b ; b.set( "坂本" , 39 ) ;
Jyoshi m ; m.set( "柴田" , 65 ) ;  // 継承だからできる技であることを強調
m.add( &a ) ; m.add( &b ) ;
}