已采纳回答 / 慕粉4007596
这是一个判断是否相等的运算符重载,返回值是一个bool类型的值。传进来的参数是两个对象的引用,然后在运算符重载函数里对比两个对象中的name和score是否相等,若相等返回true否则返回false。这个是个二元运算符重载,并且需要在类内进行声明,声明为成员函数重载或者友元全局函数重载,你这个里面没有声明
2016-10-09
已采纳回答 / 白瑞爷
不不不,你没理解我的意思假设现在list里有三个元素以你的代码为例<...code...>开始第一次循环:<...code...>第二次循环:<...code...>第三次循环:<...code...>你要理解后置++的运算...
2016-09-28
已采纳回答 / hust_web
应该是7 6吧 我觉得 因为你的operator++前面返回类型没有加上引用&,所以++s1,首先把s1的5变成6,但是++s1返回了一个临时对象,然后对这个临时对象进行了前置++变成了7,调用print ,而s1调用print还是6。
2016-08-08
已采纳回答 / 灬elliott
从概念上来讲,构造函数的执行可以分成两个阶段,初始化阶段和计算阶段,初始化阶段先于计算阶段。所有类类型(class type)的成员都会在初始化阶段初始化,即使该成员没有出现在构造函数的初始化列表中除了性能问题之外,有些时候合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表1.常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面2.引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面3. 没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数...
2016-06-26
已采纳回答 / 小小程序员努力努力再努力3231452
#include <iostream>using namespace std;template<typename T,typename M>void display (T &t,M &m){ T temp=0; temp=t; t=m; m=temp;}int main(){ int a=2; double b=2.3; display<int,double>(a,b); cout<<a; ...
2016-05-12
已采纳回答 / qq_子非鱼_27
//friend Coordinate operator+( Coordinate &c1, Coordinate &c2);声明里参数是引用类型的Coordinate operator+(Coordinate c1,Coordinate c2)定义里面却不是,编译器会认为这是两个不一样的函数的<...code...>这样试一下。。
2016-04-20