-
友元全局函数。
友元成员函数。
查看全部 -
friend void的void关键字我们用上
函数开头写返回值void我也没用。
每行写分号
查看全部 -
运算符重载可以使运算符具有新的功能。
运算符重载使用关键字operator。
++运算符重载需要区分前置++重载和后置++重载。
有些运算符必须使用成员函数重载,有些则必须使用友元函数重载。(输出运算符<< 只能用友元函数重载,索引运算符[] 只能用成员函数重载)
查看全部 -
友元函数不是类的成员函数,所以不能通过类或者对象来访问友元函数
查看全部 -
template <typename T> void swapNum(T &a, T &b)//这地方不加引用交换不了数据 {T temp = a; a = b; b = temp;}
查看全部 -
1、函数模板关键字:template class typename;
2、一般使用方法:template <typename T>
调用方法:函数<数据类型>(实参)
T 函数(T a,Tb)
查看全部 -
1、“<<”">>"运算符重载只能用友元函数重载,不能用成员函数重载,因为第一个参数必须为ostream数据类型,相关格式为:friend ostream& operator>>(ostream &out,const &类对象);
2、索引运算符[]:只能用成员函数重载,不能用友元函数重载,因为它传入参数必须是当前对象,即this指针,相关格式 数据类型 operator[](int index);
3、“+”运算符重载成员函数和友元函数都可以重载,相关格式 对象 operator+(&对象)或friend 对象 operator +(&对象,&对象);
查看全部 -
1、后置++运算符重载写法格式:对象 operator++(int),返回的是一个对象而不是引用,形参int只是一个标志不具备实际意义;
2、定义实现方法,需先实例化一个临时对象,这个临时对象拷贝当前对象的值,然后修改当前对象的值,最后返回值临时对象
查看全部 -
1、静态数据成员不跟随类实例化,单独实例化,也就是无论类是否实例化一个对象,静态数据成员都存储在内存中;
2、静态成员函数不能调用非静态成员函数和非静态数据成员;
3、静态数据成员只有一份,不依赖于对象而存在,若用sizeof()求对象的大小不包括静态数据成员的大小;
查看全部 -
友元的注意事项
查看全部 -
1、友元函数形参必须是对象、对象的引用或指针(引用和指针效率高)
2、友元函数会破坏类的封装性,即外部函数可以访问类的私有成员
3、友元成员函数不限定于pubilc、pravite、protected,可在类中任意位置,一般置于最前面用于提示此函数会破坏封装性
查看全部 -
输出运算符必须写成友元函数的形式
查看全部 -
使用直接访问的方式更快
参数是一个引用,所以printXY()中写对象名就可以了
查看全部 -
静态成员函数不可以调用非静态成员函数,反之成立查看全部
-
静态数据成员不依赖于对象,而依赖于类查看全部
举报