このコードを見てください:
#include <framework_i_hate.h>
int main() {
XFile file("./my_file.xxxx", "create");
XObject object("my_object");
// modify the object
object.Write();
}
保存される場所を推測してみてくださいobject
... はい、あなたはそれを推測しました。これは魔法すぎると思います。 のようなものを書きたいobject.Save(file)
のですが、必須ではありません。明らかに、コンストラクターframework_i_hate.h
中に変更されるグローバル変数が内部にあります。file
コンストラクター内のこの副作用についてどう思いますか?
この動作をどのように隠すことができますか?
フレームワークを推測する人へのボーナス。