我有一個類(至極應該持有任何值)是這樣的: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)
{...}
我婉德興一類至極的工作如下:
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 -to-另一個-TEM)。 – agold
你爲什麼要這樣實現它?你認爲什麼問題會幫助你解決? –