typedef struct bi_bitField
{
    DWORD  redCode;
    DWORD  greenCode;
    DWORD  blueCode;
    const struct bi_bitField & operator = (const struct bi_bitField & F)//这个地方
    {
        if (&F != this)
        {
            redCode = F.redCode;
            greenCode = F.greenCode;
            blueCode = F.blueCode;
        }
        return *this;
    }
    friend std::istream & operator>>(std::istream & is,struct bi_bitField & F)
    {
        is >> F.redCode >> F.greenCode >> F.blueCode ;
        return is;
    }    friend std::ostream & operator<<(std::ostream & os,const struct bi_bitField & F)
    {
        os << F.redCode << F.greenCode << F.blueCode ;
        return os;
    }
}bitField;
operator 和F怎么来的?

解决方案 »

  1.   

    operator是运算符重载的关键字 F是定义的bi_bitField结构的变量的引用
      

  2.   

      friend std::istream & operator>>(std::istream & is,struct bi_bitField & F) 
        { 
            is >> F.redCode >> F.greenCode >> F.blueCode ; 
            return is; 
        } 
    ==这里F是bi_bitField&类型啊,写的很清楚。
    ==operator 是关键字,表示重载运算符
    这里就是重载了赋值和序列化的操作符。
      

  3.   

    C++中将struct看成类来对待了你吧它换成class就好理解了,只是struct中默认成员数据函数等全是public而已