>>414
設計が悪いとは思うのですが具体的に何がおかしくてこうなっているのかよくわからないです…
具体例はこんな感じです

namespace Model {
class DataRecord {
public:
virtual ~DataRecord() {}
//こっちにstd::string GetPrintfString()=0;みたいな関数を作るべき?
//しかしデータによってどういう表示をするかはViewの方で選びたい
};
class DataRecordString : public DataRecord {
std::string value;
public:
DataRecordString(const std::string& value):value(value){}
const std::string& GetValue()const { return value; }
};
class DataRecordInt : public DataRecord {
int value;
public:
DataRecordInt(int value):value(value){}
int GetValue()const { return value; }
};

class Model {
std::vector<std::shared_ptr<DataRecord>> dataRecords;
public:
//TODO これだとvector自体はconstに出来てもvectorの要素は変更できてしまうのも問題…
const std::vector<std::shared_ptr<DataRecord>>& GetDataRecords()const { return dataRecords; }
};
}