0

C++ 構造体のベクトルがあり、これを管理された型指定されたデータセットに入れる必要があります。

std::vector<Record*> record_collection;

class Record{
public:
Record(){};
virtual ~Record(){};
virtual void serialize(std::ostream& dest){
    dest << "Record" << std::endl;
}
};

Record* は基本クラスです。派生クラスを処理する必要があります。典型的な例は

class TestRecord:public Record{
public:
    TestRecord(){};
    ~TestRecord(){};
    std::string t_str;
    int t_int;
    double t_double;
    void serialize(std::ostream& dest){
        dest << t_int << ',' << t_double << ',' << t_str << ',' << std::endl;
    };
};

基本的に、シリアル化メソッドを再現する必要がありますがt_str、 、t_int、およびの DataColumns を作成しt_double、列を適切に入力してから、値を入力する必要があります。

この時点で、必要に応じて何でも編集できますが、レコードを実装するすべてのデータ メンバーを、型指定された列を持つ管理されたデータセットにシリアル化できるようにパターンを設定する必要があります。

誰でも役立つパターンや提案についてアドバイスできますか? これがPythonの場合、タプルの検査でそれを行うことができますが、c ++ 11では、タプルは事前定義された型である必要があります.

ここでの問題は、 /cli を使用してレコードまたは TestRecord をコンパイルできない可能性があることです。その場合、データテーブルをレコードに渡して、それ自体に入力させることができます。そのため、私が持っているものよりも優れたソリューションを探しています。

a)派生クラスごとにマネージ ラッパーを作成する。b) 型検査を行う。

私が見逃したパターンはありますか?

ありがとう、メラニー

4

0 に答える 0