FOR______CSDN 2022-12-02 11:28 采纳率: 88.9%
浏览 19
已结题

无&却可以改变r1的值

#include<iostream>

using namespace std;

class Rectangle{

 private:

 double height;

 double width;

 public:

 Rectangle(double newheight=1,double newwidth=1){

 height=newheight;

 width=newwidth;

 cout<<"Constructor is called"<<endl;

 }

 void set(double newheight,double newwidth){

 height=newheight;

 width=newwidth;

 }

 double getHeight(){

 return height;

 } 

 double getWidth(){

 return width;

 }

 double getArea(){

 return height*width;

 } 

 double getPerimeter(){

 return 2*(height+width);

 }

 

}; 

int main(){

 Rectangle r1;

 Rectangle r2(3,4);

 cout<<r1.getHeight()<<" "<<r1.getWidth()<<endl;

 r1.set(40,4);

 cout<<r1.getHeight()<<" "<<r1.getWidth()<<endl;

 cout<<r2.getArea()<<" "<<r2.getPerimeter()<<endl;

 return 0;

}

此题void set()函数没有使用&,但是为什么可以改变r1的值

  • 写回答

1条回答 默认 最新

  • 牛马不分 2022-12-02 11:40
    关注

    因为void set()函数里面把值赋值给了成员变量 height、width;然后r1.getHeight()和r1.getWidth()获取到的是set传进来的值

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

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 12月2日

悬赏问题

  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗