ホーム » スタッフ » 斉藤徹 » 抽象化と隠蔽化、およびC++のプログラム例

2004年4月
 123
45678910
11121314151617
18192021222324
252627282930  

最新の投稿(電子情報)

アーカイブ

カテゴリー

抽象化と隠蔽化、およびC++のプログラム例

先週からの続きとして、C言語によるオブジェクト指向のエッセンスを 取り入れた短いプログラム例を通して、説明を行う。 関数による 手続き抽象 の説明、三角形のデータ表現を例に用いて データ抽象 の説明および、メンバのアクセス制限の必要性の説明を行う。

この後、Cによる説明から、C++を用いたプログラム例に書き換える。 先週の説明での Person[氏名,年齢,身長]を class 化し、 set,printのメソッドを定義したプログラム例を用いる。 private/publicによるアクセス制限にも言及。 これによりデータ抽象、手続き抽象の効果が得られ、 プログラム開発の役割分担が容易、原因究明の線引きが容易という点を強調。

ただしコンストラクタ、デストラクタなどは用いない。

class Person {
private:  // private指定では、メソッド外からのアクセスを禁止
char  name[20] ;
int   age ;
float height ;
public:   // public指定では、メソッド外から参照できる
void set( char s[] , int a , float h ) { // データ初期化のメソッド
strcpy( name , s ) ; age = a ; height = h ;
}
void print() {    // データ表示のメソッド
printf( "%s %d %f\n" , name , age , height ) ;
}
} ;
int main() {
Person saitoh ;
saitoh.set( "斉藤" , 39 , 172.3 ) ;
Person mitsuki ;
mitsuki.set( "充輝" , 4 , 97.4 ) ;
saitoh.print() ;
mitsuki.print() ;
}