C++ 成员函数引用非引用指针区别

class BB{
public:
BB(){
a = new int;
a = 0;
c = 2;
d =3;
}
int
get(){
return a;
}
int getC(){
return c;
}
int* getD(){
return &d;
}
~BB(){
if (a!=NULL)
{
delete a;
a =NULL;
}
}
private:
int* a;
int c;
int d;

};

int _tmain(int argc, _TCHAR* argv[])
{
BB b;
int* c = b.get();
int* d = b.get();
int e = b.getC();
int f = b.getC();
c = &e;
d = &f;
c = b.getD();
d = b.getD();
return 0;
}
直接写结果了。 get()返回指针 int* a,时intc 和int d 地址相同。
getC();int e,int f ,里面地址不一致,确认了非引用函数返回的是临时变量。
getD();返回地址一致,引用变量指向的地址一致。
结论:非引用类型函数每次执行返回的对象都是不同的副本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值