c++编程思想 的一个重载有关问题
c++编程思想 的一个重载问题class student{int numberpublic:friend student operator & (const student
c++编程思想 的一个重载问题
class student
{
int number;
public:
friend student operator & (const student &i,const student &j);
};
student operator &(const student &i,const student &j)
{
if(&i==&j){...}//&是地址运算符吗?
return i.number&j.number;
}
但是两个变量会地址相同吗?
谁会这样做啊!
[解决办法]
这里是想重载的是按位与的双目运算符,并非是取地址的单目运算符,二楼说的递归的问题不存在。
这个重载想达到的效果是两个类之间进行按位与操作,这里类之间的与操作等价于它们的元素i进行与操作。
难保不会敲键盘时失误写出这样的程序:
Student A;
Student B = A&A;
避免异常情况,一般都会这样做。
[解决办法]
[解决办法]缺一个student::student(int n)这样的构造函数,否则重载得到的int值无法直接隐式转换为student对象