0
私は問題に悩まされていますが、私は単純な解決策を見つけることができません。C++クラスのデザイン - 条件付きデータ型
私はImageクラスを持っている:
class Image
{
public:
Image();
~Image();
private:
int m_rows;
int m_cols;
int m_bGray;
/* HOW TO IMPLEMENT THIS?
if(m_bGray)
std::vector<std::vector<unsigned char>> m_data;
else
std::vector<std::vector<std::vector<unsigned char>>> m_data;*/
BITMAPFILEHEADER *m_bmpHeader; // store headers in case we need to write back to HDD
BITMAPINFOHEADER *m_bmpInfo;
};
私のクラスのオブジェクトは、特定の時点でR-G-Bまたはグレイのいずれかになるだろう。
これは、生データへのポインタを格納し、メモリの割り当てと解放を処理する必要がありますか?はいの場合は、arrays
より先に進んでください。
このようなシナリオでは簡単な解決策がありますか?
グレーのサブクラスとカラーのサブクラスのいずれか? – John3136
質問:いくつかのコードが 'm_bGray =!m_bGray;'を実行するとどうなりますか?実行時変数とコンパイル時の記憶域を混在させます。 – luk32
脇に。 rgbトリプレットを保存するとき。入れ子にされたベクトルを避けることができます。あなたはそれが3つのucharsを含む構造になるでしょう。だから、 'std :: tuple'や特定の' rgb'構造体/クラスのベクトルを使うことができます。 –