运算子=返回班级成员?

时间:2018-09-11 16:33:42

标签: c++ operator-overloading

我找不到是否可以重写“ =”运算符以返回类成员。 到目前为止,我已经部分实现了我想要的目标,但是它丑陋而混乱,我想这是毫无意义的。

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;  
   }  

0 个答案:

没有答案