- - PR -
シリアライズ処理について教えてください
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-02-04 23:59
こんにちわ、はじめまして、中川ともうす者です。
シリアライズ処理についてわかる方おられましたら教えてください。
と
は正常に動作するのに、
は、 「TestClass に既定のパブリック コンストラクタが含まれていないため、シリアル化できません。」 という例外が発生します。これはなぜでしょうか? 既定のパブリック コンストラクタは1番目の例でも含まれていませんが、こちらはエラーになりません。 [ メッセージ編集済み 編集者: kiyo 編集日時 2002-02-05 00:00 ] | ||||||||||||
|
投稿日時: 2002-02-05 15:47
コンストラクタが1つも無いクラスは、引数が無く何もしないコンストラクタがあると仮定して処理されますが、引数のあるコンストラクタが1個でもあると、引数の無いコンストラクタは存在しないと見なされます。
という問題でしょうか? _________________ | ||||||||||||
|
投稿日時: 2002-02-11 00:40
autumn様、ありがとうございます。
やはりそういう仕様が存在するのですね。 納得しました。今後ともよろしくお願いします。 | ||||||||||||
|
投稿日時: 2002-02-11 19:13
正確には、コンストラクタがないクラスをコンパイルするときに、コンパイラがデフォルトコンストラクタ(引数がないコンストラクタ)を挿入します。仮定するわけではなく、実際にコンストラクタが追加されます。このコンストラクタは、単にベースクラスのデフォルトコンストラクタを呼ぶだけのコードが入っています。 |
1