diff --git a/include/expr.cpp b/include/expr.cpp index 38b8256e2..b7f1b84f8 100755 --- a/include/expr.cpp +++ b/include/expr.cpp @@ -7,6 +7,13 @@ #include #include + +TValue::TValue(const real& val) +{ + _r = val; + _s = val.string( ); +} + TCodearray::TCodearray(int size) : _rpn(size) { clear(); @@ -57,7 +64,8 @@ void TVararray::set(const char* name, const real& val) for (int i = 0; i < _array.items(); i++) if (strcmp(((TVar&) _array[i]).getname(), name) == 0) { - ((TVar&) _array[i]) = (TValue&) val; + TValue tempval( val ); + ((TVar&) _array[i]) = tempval; return; } } @@ -69,7 +77,8 @@ void TVararray::set(const char* name, const char* val) for (int i = 0; i < _array.items(); i++) if (strcmp(((TVar&) _array[i]).getname(), name) == 0) { - ((TVar&) _array[i]) = (TValue&) val; + TValue tempval( val ); + ((TVar&) _array[i]) = tempval; return; } } diff --git a/include/expr.h b/include/expr.h index 2314fb2f0..366175009 100755 --- a/include/expr.h +++ b/include/expr.h @@ -92,8 +92,7 @@ public: { _s = val; _r = real(val);} // @cmember Costruttore. Inizializza TValue con un reale - TValue(const real& val) - { _r = val; _s = val.string();} + TValue(const real& val); // @cmember Costruttore. Inizializza TValue con una stringa TValue(const char* val) { _s = val; _r = real(val);}