运算符的重载//例5:运算符“”的重载#include stdafx.husing namespace std#include string.hclass Ba
运算符的重载
//例5:运算符“=”的重载
#include "stdafx.h"
using namespace std;
#include <string.h>
class BadClass
{
int *p;
public:
BadClass(){p=NULL;}
BadClass(int a)
{
p=new int(a);
}
BadClass& operator =(BadClass &ob2) //这里不懂,BadClass后面的&是为什么啊?
{
int t=*(ob2.p);
//cout<<t<<endl;
if(p==NULL)
p=new int(t);
else
*p=t;
//disp();
return *this;
}
void disp()
{
cout<<"p的地址="<<p<<"\t *p="<<*p<<endl;
}
~BadClass()
{
delete p;
}
};
void test()
{
BadClass ob1(5),ob2;
ob1.disp();
//ob2.disp();
ob2=ob1;
ob2.disp();
}
[解决办法]
BadClass& operator =(const BadClass &ob2) //这里不懂,BadClass后面的&是为什么啊?
google “C++ 引用” 加个const 比较好。
[解决办法]
去复习下引用那章节。
