>>14
>何も書かれてないということは
いや、書かれていることになる

上の例で出ている関数などでバッファポインタとバッファサイズを取るものは、
[buf, buf+size) の範囲内がアクセス可能ということを要件としているので、
size==0のときはbufのアドレスが何であれ要件を満たすことになる

>>15
似たようなことをする方法はいくつかある

・仮想関数をvfuncとして、基底クラスにinit()などを用意して、
 派生クラスのコンストラクタから呼ぶ
  ※ 基底ctor -> 派生ctor -> 基底init() -> 派生vfunc()

・基底コンストラクタに関数ポインタ類を渡す

・templateクラスにして継承関係を逆にする
  ※ template<class T> class base : T {};