ホーム » スタッフ » 斉藤徹 » 構造体によるオブジェクト指向

2005年4月
 12
3456789
10111213141516
17181920212223
24252627282930

最近の投稿(電子情報)

アーカイブ

カテゴリー

構造体によるオブジェクト指向

他学科OBの受講生を考慮し、構造体の説明を行う。 この説明の中で、オブジェクト指向の用語を多数取入れる。 これにより、電子情報OBの学生にはオブジェクト指向の入口を理解してもらう。

C言語で、オブジェクト指向もどきのプログラミングの例

struct Person {
char  name[ 30 ] ;
int   age ;
float height ;
} ;
void set_Person( struct Person* this , char s[] , int a , float h )
{
strcpy( (*this).name , s ) ;
(*this).age = a ;
(*this).height = h ;
}
void print_Person( struct Person* this )
{
printf( "%s %d %f\n" , (*this).name , (*this).age , (*this).height ) ;
}
void main()
{
struct Person saitoh ;
set_Person( &saitoh , "t-saitoh" , 40 , 172.3 ) ;
print_Person( &saitoh ) ;
}

この例のプログラムの例では、 set_Person , print_Person 関数により、 手続き抽象 となっている。 また、main の処理の内部には、データ構造の内容が一切記載されていないため、 データ抽象 ができている。これにより、処理とデータ構造の隠蔽化ができる。 これにより、 データ構造を擬人化してとらえ 『データ構造に命令する』 というイメージでプログラムが作れるので直観的 となる。

他学科OBのために、この話しの前に、関数への値渡し・ポインタ渡し・C++での参照渡し を説明する。上記プログラム例では、沢山の演算子の説明を防ぐために、 アロー演算子は最初の段階では説明を行わない。