首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++编程思想 的一个重载有关问题

2012-05-09 
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;
避免异常情况,一般都会这样做。

[解决办法]

探讨
这里是想重载的是按位与的双目运算符,并非是取地址的单目运算符,二楼说的递归的问题不存在。
这个重载想达到的效果是两个类之间进行按位与操作,这里类之间的与操作等价于它们的元素i进行与操作。
难保不会敲键盘时失误写出这样的程序:
Student A;
Student B = A&A;
避免异常情况,一般都会这样做。

[解决办法]
缺一个student::student(int n)这样的构造函数,否则重载得到的int值无法直接隐式转换为student对象
探讨

引用:
这里是想重载的是按位与的双目运算符,并非是取地址的单目运算符,二楼说的递归的问题不存在。
这个重载想达到的效果是两个类之间进行按位与操作,这里类之间的与操作等价于它们的元素i进行与操作。
难保不会敲键盘时失误写出这样的程序:
Student A;
Student B = A&A;
避免异常情况,一般都会这样做。

他这个重载位操作符&am……

热点排行