最赞回答 / weixin_慕雪0498266
你这代码问题很多,首先声明友元函数时,需要指出哪个类的成员函数作友元,即 friend Match::printTime(Time &t);之后F5会出现编译错误,原因在于Match未声明,即在class Time{}前声明class Match; 之后F5编译出现错误,原因是虽然声明了Match但编译器不知道printTime是Match的成员函数,因此应该先编写类Match,再编写类Time,其中由于编写类Match时有void printTime(Time &t),所以需要先声明Ti...
2018-02-26
最新回答 / discaz
实验性代码有点bug,简单来说,我能不能使用opertaor-(double)重载函数能使得int类型的成员属性不改变,而double类型的属性取负值
2017-11-28
最赞回答 / 慕设计7231163
有两个很好的作用: 一个作用是改变运算符的本来运算方式,比如我定义一个类有两个数据成员m_iX和m_iY,把一个运算符重载函数名写成Coor& operator++()的形式,但是在定义函数的时候却定义成m_iX和m_iY自减即{--m_iX;--m_iY},那么我实例化一个Coor的对象c(2,2),并在主函数中做++c时,实际运行的却是c中的所有数据成员自减,结果等于(1,1),所以运算符重载相当于把运算符重新定义。 另一个是把对象直接作为一个数据可以反馈出来,简化了...
2017-11-02
已采纳回答 / 慕田峪7409042
比如将全局函数fun(A a)声明为类A的友元函数,那么fun(A a)中就可以调用类A中的private和protect属性的成员,如果不做此声明,那么便不可以访问。
2017-10-29