У меня есть класс (которым должен держать любое значение), как это:C++ слева назначение руки оператора
class Value
{
public:
Value();
Value(const Value& value);
virtual ~Value();
void operator= (const Value& value);
template<class T>
void operator= (T value);
...
}
теперь мой вопрос:
почему я не могу реализовать оператор присваивания для этого класса, как это:
template<class T>
void operator=(T& value, const Value& v)
{...}
Я бледный Desing класс Wich работает следующим образом:
Value v;
v = 'c';
v = 13;
v = 5.6;
int i = 5;
v = &i;
int y = v;
char b = v;
Я хочу поместить в него какой-либо тип данных и выйти из него. на данный момент это работает отлично для:
v = 'c';
v = 13;
v = 5.6;
но не для:
int y = v;
, что работает это:
int y = v.get<int>();
, но это не так хорошо, как
int y = v;
будет
Это опечатка в вашем вопросе? Вы имели в виду 'void operator ='? – melpomene
См. [Перегрузка оператора присваивания в шаблоне класса, который может быть применен к другому типу шаблона] (http://stackoverflow.com/questions/8305952/overloading-assignment-operator-in-a-class-template-that-can-cast -в-другому-TEM). – agold
Зачем вам это реализовать? Какая проблема, по вашему мнению, поможет вам решить проблему? –