HOME»基本情報技術者試験掲示板»【科目B】オブジェクト指向におけるオブジェクトの生成について
投稿する

【科目B】オブジェクト指向におけるオブジェクトの生成について [5903]

 わんわんさん(No.1) 
大滝本の基本例題なのですが、p94「基本例題3.9」
問題文に「単方向リストの要素はクラスNodeを用いて表現する。」とされています。
そして、プログラムを確認すると、次の記述から始まっています。
○文字列型:search(文字型:key)
ここで疑問なのは、
この記述は、オブジェクト指向のメソッド(コンストラクタ)ではなく、普通の関数呼び出しかと思います。
オブジェクトの生成はクラス名と同じメソッド(コンストラクタ)から始まると思うのですが、
Node()というコンストラクタが見当たりません。
例題のプログラムは、「普通の関数」と「オブジェクト指向」の記述が混在しておりますが、
どのように解釈すればいいのでしょうか?
2025.05.18 15:28
電タックさん(No.2) 
FE ブロンズマイスター
その書籍を持っていないのでかなり想像を含みます。

>この記述は、オブジェクト指向のメソッド(コンストラクタ)ではなく、普通の関数呼び出しかと思います。
そうだと思います。

>例題のプログラムは、「普通の関数」と「オブジェクト指向」の記述が混在しておりますが、どのように解釈すればいいのでしょうか? 
関数の名前からリストを作っているのではなく、リストを使っていると推測できます。
そのため
そのsearch関数が呼ばれたときにはもうリストがどこかで作られ完成している状態ではあるけど、問題としてはその部分は気にしなくて良いという事だと思います。
2025.05.18 23:41
 わんわんさん(No.3) 
> 電タックさん

個別の書籍まで質問しない方が良さそうですね。申し訳ありません。
> リストを作っているのではなく、リストを使っていると推測できます。
なるほど、既にクラスNodeを用いて単方向リストは完成していて、
それを用いた処理という解釈なのですね!
ようやくスッキリできました。ありがとうございました。
2025.05.19 01:10
y4 kさん(No.4) 
FE ブロンズマイスター
一般的なオブジェクト指向プログラミング言語(C++等)では、コンストラクタが未定義の場合、自動的にデフォルトコンストラクタが定義され、その内容が実行されます。
※実際には空(=何も行われない)内容

結果、コンストラクタから始まるという考え自体に誤りはありませんが、無くても特に支障がない。これがオブジェクト指向プログラミング言語の仕様だったりもします。
2025.05.19 13:44
 わんわんさん(No.5) 
> y4 kさん
SQLで質問させていただいた際も、製品によって挙動が変わること教えていただきました。
オブジェクト指向においても、プログラミング言語によっては、自動でコンストラクタを定義されるのですね。
参考書のオブジェクト指向の基礎説明では、
メンバ変数やメンバメソッドだけを用いた記述だったので、
てっきりメンバで定義された変数やメソッドしか使ってはいけないものと思い込んでおりました。
普通の関数の記述が混在することに加え、コンストラクタもないことに混乱してしまいましたが、もっと柔軟に考えていいのですね。
ありがとうございました。
2025.05.20 18:49
返信投稿用フォームスパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop