>680
例えばopen等のメンテの度に、Data全体をコンパイルし直さなければならないというコストです。

>681
うんにゃ。拡張したopen関数が、Dataに負わせるに相応しい債務であれば
Dataに入れても良いと思います。
ちなみに何の拡張もされていないopenを追加する目的は、「openの拡張に備えて」だろうけど
「必要に成った時点で追加」と言う方針で困るケースなど無いから、杞憂というものです。

>682,668
>551と>569の違いは、Dataがopen等を実装しているか否かです。
>569のSaveToFileの中身は↓です。
SaveToFile() {
 m_pFile->open();
 m_pFile->write();
 m_pFile->close();
}

>683
そうですね。
まぁダメな例をちょっと改善したに過ぎないので、ツッコミ処はいくらでもあるかと思います。

>684
その先って>667の無限ループの事ですよ?

>687,689,690
細かい事は気にせず書いてるから、多少おかしな部分はあるかもしれません。
ツッコミたければ好きなだけどうぞ。全部甘んじて受けておきますよ。
以降は、些細なミスについては一々弁解・謝罪するつもりは無いのでよろしくお願いしますね。