问题及代码
#include <iostream>
using namespace std;
class XiaoPing
{
private:
int state; //用来记录是否有参数
int data;
public:
XiaoPing();
XiaoPing(int data);
~XiaoPing();
};
//
XiaoPing::XiaoPing()
{
state=0;
cout<<"create an object with no parameter"<<endl;
}
XiaoPing::XiaoPing(int data)
{
state=1;
<span style="color:#cc0000;">(*this).data=data;
</span> cout<<"create an object with a parameter:"<<data<<endl;
}
///
XiaoPing::~XiaoPing()
{
if(state)
cout<<"destroy an object with a parameter:"<<(*this).data<<endl;
else
cout<<"destroy an object with no parameter"<<endl;
}
int main()
{
int data;
XiaoPing zeropara1;
cin>>data;
XiaoPing onepara1(data);
XiaoPing zeropara2;
cin>>data;
XiaoPing onepara2(data);
return 0;
}
可是为什么要加*this才行呢?
//
XiaoPing::XiaoPing()
{
state=0;
cout<<"create an object with no parameter"<<endl;
}
XiaoPing::XiaoPing(int data)
{
state=1;
<span style="color:#cc0000;">data=data;
</span> cout<<"create an object with a parameter:"<<data<<endl;
}
///
不是谁用的就是给谁里面的数据成员赋值??难不成不用 *this 还给撤销了不成
哦,因为形参与实参重名了。。
哈哈