У меня проблема с присвоением значения объекту. мое определение объекта говорит:Как я могу изменить тип значения объекта в C++
class myobject {
public:
var_type type;
union value_type value;
myobject(int value);
myobject(string value);
...
};
enum var_type {
var_int,
var_str,
var_float
};
union value_type {
int;
real;
string;
};
myobject* object = get_object("name");
//here i need to change its value, i dont have any setvalue function.
Теперь в какой-либо другой файл, мне нужно обновить значение MyObject, но я не знаю, тип значения. скажем, initial value_type - int, а моя функция присваивает ему строку, я получаю абсурдное значение в doign GetValue(). Что должно быть более эффективным способом получения типа значения объекта, измените мое строковое значение на старый тип значения, который он поддерживает и модифицировал. Я не могу изменить класс определения myobject.
Благодаря Ручьи
Что вы имеете в виду, что не знаете тип значения? Разве это не 'object-> type'? –
Обратите внимание, что вам нужно будет изменить определение, по крайней мере, достаточно, чтобы перечислить его перед классом. –