我找不到是否可以重写“ =”运算符以返回类成员。 到目前为止,我已经部分实现了我想要的目标,但是它丑陋而混乱,我想这是毫无意义的。
class voidVariant
{
private:
std::string tInfo;
void* data = nullptr;
template <class T>
voidVariant(T obj)
: tInfo(typeid(T).name()),
data(vAllocate(obj))
{}
int operator=(voidVariant& vdvr)
{
return *static_cast<int*>(vdvr.data);
}
};
int main()
{
int a = 6;
voidVariant va{ a };
int c = va = va; //c = 6
decltype(a);
return 0;
}
为什么?我想知道这样的操作是否看起来类似于ostream的操作。
ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.mo << '/' << dt.da << '/' << dt.yr;
return os;
}
int main()
{
Date dt(5, 6, 92);
cout << dt;
}