751505974 2017-03-20 08:28 采纳率: 100%
浏览 1089
已采纳

关于一个常引用的问题

#include <iostream>
using namespace std;
class Coordinate{
public:
Coordinate(int x, int y) :X(x), Y(y){}
void setX(int x) { X = x; }
void setY(int y) { Y = y; }
int getX(){
return X;
}
int getY(){
return Y;
}
void printInfo(void){ cout << getX() << ' ' << getY()<<'\n'; }
int Z;
private:
int X;
int Y;
};
int main(void)
{
Coordinate a(2, 3);
const Coordinate b(4, 5);
Coordinate &const c = a; //编译通过,引用的对象为普通对象,并且只能引用一次
c.setX(8); //可通过成员函数修改成员变量
c.getX();
c.Z = 5; //也可直接修改公共成员变量
c.printInfo(); //输出结果为8,3,这说明修改成功。

a.printInfo();  //输出结果为2,3?刚刚不是被c引用并且修改内容了吗?
c = b; //编译通过,引用还能换对象?

system("pause");
return 0;
}

a.printInfo(); //输出结果为2,3?刚刚不是被c引用并且修改内容了吗?

  • 写回答

1条回答 默认 最新

  • Rocker的创意工坊 2017-03-20 08:39
    关注

    把c的const去掉试试呢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置