粥粥528 2022-02-05 12:23 采纳率: 84%
浏览 46
已结题

指针数组咋弄呀不太明白

/*使用实验5-8的Rectangle类,创建一个指针数组,定义形式如下:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
Rectangle *pRectangle[3];‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
然后在运行中输入三个矩形对象的宽度和高度,分别建立三个矩形对象,
把这些对象的地址分别存放到pRectangle数组中。
然后调用getArea和getPerimeter函数计算每个矩形的面积和周长,并显示出来。
(可在构造函数和析构函数中加入输出语句,检验程序执行的流程.)*/
#include <iostream>
#include<cstring>
using namespace std;
class rectangle
{
    int length;
    int width;
public:
    rectangle(){};
    void rec(int a,int b)
    {
        length=a;
        width=b;
        cout<<"create a rectangle."<<endl;
        cout<<"length="<<length<<" ";
        cout<<"width="<<width<<endl;
    }
    void area()
    {
        cout<<"area="<<2*(length+width)<<" ";
    }
    void perimeter()
    {
        cout<<"perimeter="<<length*width<<endl;
    }
};

int main()
{
    rectangle *r[2];
    int a,b;
    for(int i=0;i<=2;i++)
    {
        cin>>a>>b;
        (*r+i)->rec(a,b);
        (*r+i)->area();
        (*r+i)->perimeter();
    }

}

  • 写回答

2条回答 默认 最新

  • 旺仔不爱牛奶 2022-02-05 13:22
    关注

    修改如下

    
    /*使用实验5-8的Rectangle类,创建一个指针数组,定义形式如下:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
    Rectangle *pRectangle[3];‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
    然后在运行中输入三个矩形对象的宽度和高度,分别建立三个矩形对象,
    把这些对象的地址分别存放到pRectangle数组中。
    然后调用getArea和getPerimeter函数计算每个矩形的面积和周长,并显示出来。
    (可在构造函数和析构函数中加入输出语句,检验程序执行的流程.)*/
    #include <iostream>
    #include<cstring>
    using namespace std;
    class rectangle
    {
        int length;
        int width;
    public:
        rectangle() 
        {
            length = 0;
            width = 0;
        };
        void rec(int a, int b)
        {
            length = a;
            width = b;
            cout << "create a rectangle." << endl;
            cout << "length=" << length << " ";
            cout << "width=" << width << endl;
        }
        void area()
        {
            cout << "area=" << length * width << " ";
        }
        void perimeter()
        {
            cout << "perimeter=" << 2 * (length + width) << endl;
        }
    };
    
    int main()
    {
        rectangle r1;
        rectangle r2;
        rectangle* r[2] = { &r1,&r2 };
        int a, b;
        for (int i = 0; i <= 1; i++)
        {
            cin >> a >> b;
            (*(r + i))->rec(a, b);
            (*(r + i))->area();
            (*(r + i))->perimeter();
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 2月5日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境