lwqsbtl 2018-10-31 09:03 采纳率: 42.9%
浏览 720

c++中类的虚函数与引用赋值问题

class Shape{
public:
    virtual int fun()=0;
};
class Rec:public Shape{
    int x,y;
public:
    Rec(int a,int b){
        x=a;
        y=b;
    }
    void Set(int a,int b){
        x=a;
        y=b;
    }
   virtual int fun(){
        return x*y;
    }

};
void main(){
     Rec r1(1,1);
     Rec r2(10,10); 
     Shape &p=r1;
     r1=r2; 
     cout<<p.fun()<<endl; //输出x*y=100

     r1.Set(1,1);
     cout<<p.fun()<<endl;  //输出x*y=1
     p=r2;
     cout<<p.fun()<<endl;  //输出x*y=1,为什么不是输出100?????????
     while(1);
}

可是如果对int型进行引用的话,
int a=1,b=2;
int &p=a;
cout<<a<<p<<endl; //输出1,1
p=b;
cout<<a<<p<<endl; //输出2,2
a=3;
cout<<a<<p<<endl; //输出3,3
无论是改变a还是p他们俩都会一起改变,跟上面的类的引用不一样

  • 写回答

3条回答

  • 随风飘荡012 2018-10-31 09:29
    关注

    r1地址 和p地址是否一样 不一样更改r1并不改变p

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名