ポリモーフィズム
画像を読み込むクラス、以下のようにしたらよさそう。
// 抽象クラス class ImageReader{ // ... }; class JpegReader: public ImageReader{ // ... }; class BmpReader: public ImageReader{ // ... }; // など拡張子に合わせたクラス
こうするとmain関数では
ImageReader* ir; if(...){ // 拡張子がjpgなら ir = new JpegReader(); } else if(...){ // 拡張子がbmpなら ir = new BmpReader(); } // など
こういう風にポリモーフィズムなクラスを使える。
他人のコード見てて、クラスをポインタで宣言してnewで確保してる人が多いけどその意図が分からなかった。
でも上のようにポリモーフィズムにするためのものなのかもしれない。
これだとコンパイル時ではなくて、実行時にどの派生クラスを使うかが決まる。
個人の研究で使ってる分にはあまり活躍する機会がない。
C++使い始めて3年目くらいだけど、まだまだ知らないことだらけだ。