隠蔽化の次のネタということで、継承(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 ) ; }