標準出力

Dの標準出力はstd.cstream.doutみたいですが、プログラム終了時に一気に表示されるっぽいです。 - あきまさ (2005年11月07日 02時22分59秒)

std/cstream.d をちょろっと見てみました。

  • import std.cstream すると、std.stream と std.c.stdio も import される。
  • din, dout, derr の型は CFile。
static this() {
  // open standard I/O devices
  din = new CFile(std.c.stdio.stdin,FileMode.In);
  dout = new CFile(std.c.stdio.stdout,FileMode.Out);
  derr = new CFile(std.c.stdio.stderr,FileMode.Out);
}

構築時。

  • CFile は Stream を継承している。
  • Stream::close() 内で flush() している。

ということは、CFile::close() して Stream::close() が呼ばれれば flush() されるはず??
D の継承って親のメソッドも呼ばれるのだろうか?もしくはそうなるような宣言方法がある??
これは実際にサンプルコードを書いたほうが早そうだ。

気付いたこと

class 内で private import ができるようだ。