下面是一个重载赋值运算符的模板类的示例。给定这个类:
template<class Type>
class Attribute
{
public:
Type operator=( const Type rhs )
{
mData = rhs;
return mData;
}
private:
Type mData;
};
为什么下面的这段代码编译时没有任何错误?
Attribute<std::string> str;
str = 0;
虽然看似矛盾,但这段代码:
std::string test;
test = 0;
产生以下错误?
error C2593: 'operator =' is ambiguous