株式会社エス・スリー・フォー

19.9 ライブラリの機能を活用しよう!

最もよくある誤りとして、ライブラリの機能をフルに活用していないことが挙げられます。「手助け」クラスを書いていることに気づいたら、なぜそうしているのかを考えてみてください。また、自分の書いたものがややぎこちなく見えたら、もっとエレガントな方法があるかもしれません。Tools.h++ マニュアルを少しめくってみるだけで、探していたものが見つかる可能性があります。

次によくある例を挙げます。

main(int argc, char* argv[]){
   char buf[120];                   //おっと: オーバーフローの可能性
   ifstream fstr(argv[1]);
   RWCString line;

   while (fstr.readline(buf,sizeof(buf)) {
     line = buf;                                //うーん: 余分なコピー
     cout << line;
   }
}

このプログラムはコマンドラインで指定されたファイルから行を読み取り、それを標準出力に出力します。RWCString クラスの機能をフルに活用することにより、以下のようにこのプログラムはずっと簡略化することができます。

main(int argc, char* argv[]){
   ifstream fstr(argv[1]);
   RWCString line;

   while (line.readLine(fstr)) {
     cout << line;
   }
}

このような例は数え切れないほどあります。大切な点は、プログラムがぎこちなく見えたら、ほとんどの場合もっと良い方法があるということです。