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 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制