64,642
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
static int a;
class CIamTemp
{
private:
int m_a;
int count;
public:
CIamTemp()
{
m_a=0;
a++;
count=a;
cout<<"构造第"<<a<<"个对象"<<endl;
}
~CIamTemp(){cout<<"析构第"<<count<<"个对象"<<endl;}
void SetMemVal(int val)
{
m_a=val;
}
void Dispaly()
{
cout<<"IamTemp's value="<<m_a<<endl;
}
};
CIamTemp ChangeIamTemp( CIamTemp iat,int val)//注意这里&变化对结果的影响
{
iat.SetMemVal(val);
return iat;
}
int main()
{
//下面传递的第一个参数是个临时变量
//CIamTemp temp=ChangeIamTemp(CIamTemp(),100);//cb不支持
CIamTemp A;//第1个对象
CIamTemp temp;//第2个对象
temp=ChangeIamTemp(A,100);//变成了第一个对象副本
temp.Dispaly();//显示100
CIamTemp temp1;//第3个副本
}
CIamTemp ChangeIamTemp( CIamTemp &iat,int val)//注意这里&变化对结果的影响
CIamTemp& ChangeIamTemp( CIamTemp &iat,int val)//注意这里&变化对结果的影响
#include <iostream>
using namespace std;
class CIamTemp
{
private:
int m_a;
public:
CIamTemp(){m_a=0;cout<<"构造一个对象"<<endl;}
~CIamTemp(){cout<<"析构一个对象"<<endl;}
void SetMemVal(int val)
{
m_a=val;
}
void Dispaly()
{
cout<<"IamTemp's value="<<m_a<<endl;
}
};
CIamTemp& ChangeIamTemp( CIamTemp &iat,int val)
{
iat.SetMemVal(val);
return iat;
}
int main()
{
//下面传递的第一个参数是个临时变量
//CIamTemp temp=ChangeIamTemp(CIamTemp(),100);//cb不支持
CIamTemp A;
CIamTemp temp=ChangeIamTemp(A,100);
temp.Dispaly();//显示100
}