vc++怎样改变一个对象的地址

[复制链接]
查看11 | 回复3 | 2010-6-15 17:50:59 | 显示全部楼层 |阅读模式
void ManagerOperation::swapAddr(Teacher&ta,Teacher&tb)
{
Teacher*ts;
ts=&ta;
&ta=&tb;
&tb=ts;
}
错误提示:
C:\Documents and Settings\Administrator\桌面\sc2\sc2\ManagerOperation.cpp(266) : error C2106: '=' : left operand must be l-value
C:\Documents and Settings\Administrator\桌面\sc2\sc2\ManagerOperation.cpp(267) : error C2106: '=' : left operand must be l-value
执行 cl.exe 时出错.

回复

使用道具 举报

千问 | 2010-6-15 17:50:59 | 显示全部楼层
left operand must be l-value表示,出现在=左边的表达式不能被赋值。地址不能被赋值,你改成如下即可:Teacher *ts,ta,tb; ts=&ta; ta=tb; tb=*ts;
回复

使用道具 举报

千问 | 2010-6-15 17:50:59 | 显示全部楼层
不能这样换 要么:void ManagerOperation::swapAddr(Teacher&ta,Teacher&tb){ Teacher ts(ta); ta=tb; tb=ts;}要么:void ManagerOperation::swapAddr(Teacher *ta,Teacher *tb){ Te
回复

使用道具 举报

千问 | 2010-6-15 17:50:59 | 显示全部楼层
你传进来的是引用又不是指针,不要加&符号~一楼的是对的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行