#ifndef NUMBER_HPP
#define NUMBER_HPP
template <class T>
class Number
{
public:
Number( T value ) : m_value( value )
{
}
T value() const
{
return m_value;
}
void setValue( T value )
{
m_value = value;
}
Number<T>& operator=( T value )
{
m_value = value;
}
// template <class T2>
// Number<T2>& operator=( const Number<T>& number )
// {
// m_value = number.value();
// return *this;
// }
private:
T m_value;
};
typedef Number<int> Integer;
typedef Number<float> Float;
typedef Number<double> Double;
#endif // NUMBER_HPP
Перегрузка закомментированного оператора присваивания - это моя попытка сделать то, что я хочу, я подумал, что это может дать лучшее описание, чем то, что находится над фрагментом.
Я хочу иметь возможность делать то, что я хочу. следующее:
Float a(10);
Integer b(20);
a = b;
Где a
тогда будет преобразован в int
и получит значение b
, но все равно будет экземпляром класса Номер
.
Возможно ли? Вы можете мне помочь?
Заранее спасибо.