Comment faire pour hériter de std::ostream?

J'ai cherché sur google et je juste ne pouvez pas trouver une réponse simple à cette question. Et il doit être simple, comme la STL est généralement.

Je veux définir MyOStream qui hérite publiquement de std::ostream. Disons que je veux appeler foo() à chaque fois que quelque chose est écrit dans mon flux.

class MyOStream : public ostream {
public:
  ...
private:
   void foo() { ... }
}

Je comprends que l'interface publique de ostream est non-virtuel, alors comment peut-il être fait?
Je veux que les clients puissent utiliser à la fois l'opérateur<< et write() et put() sur MyOStream et utiliser la capacité étendue de ma classe.

  • Le TSL peut-être simple, mais c'est seulement une partie de la norme C++ de la bibliothèque. Le iostreams de la bibliothèque n'ont rien à faire avec (ce qui était une fois) de la STL. STL est fondamentalement contianers + itérateurs + algorithmes. Iostreams, les paramètres régionaux et de tout ce qui a une toute autre origine, et est généralement une douleur à travailler avec 😉
InformationsquelleAutor Michael | 2009-04-21