嘻唰唰第四批之构造函数

问题及代码

#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 还给撤销了不成

 

哦,因为形参实参重名了。。

哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值