m0_63444449 2022-09-03 01:44 采纳率: 81%
浏览 102
已结题

这几道课后题该怎样正确程序实现

1.定义一个计数器类Counter,包含私有成员int n、重载运算符“+”,实现对象的相加。
2.c++语言中不会检查数组是否越界。设计类Border,通过重载运算符“【】”检查数组是否越界。
3.数据的进栈,出栈的程序实现

  • 写回答

3条回答 默认 最新

  • guishangppy 2022-09-03 15:06
    关注

    第一题:

    #include <iostream>
    
    using namespace std;
    
    class Count
    {
        public:
            Count(int n):n(n){}           //构造函数
            int operator+(Count obj);       //定义重载'+'号运算符函数
        private:
            int n;
    };
    int Count::operator+(Count obj)         //实现重载函数
    {
        return this->n+obj.n;
    }
    
    int main()
    {
        Count A(10),B(20);
        cout << A+B;
    }
    
    
    

    第二题:

    #include <iostream>
    
    using namespace std;
    
    class Border
    {
        public:
            Border(int size):size(size){}                                //构造函数
            bool operator[](int index);                                 //重载'[]'运算符
        private:
            int size;
    };
    
    bool Border::operator[](int index)                          //重载函数的实现
    {
        if(index >= size)
            return false;              //false代表越界
        else 
            return true;                  //true代表未越界
    }
    
    int main()
    {
        Border A(10);
        cout << A[9] << endl;
    }
    
    
    

    第三题:

    #include <iostream>
    #define SIZE 5
    using namespace std;
    
    
    struct Stack
    {
        int top;
        int arr[SIZE];
    }stack;
    
    
    void Push_stack(int num);           //入栈
    void Pop_stack();                   //出栈
    void Print_stack();                //导出栈
    
    int main()
    {
        stack.top = -1;
        Push_stack(1);
        Push_stack(2);
        Push_stack(3);
        Push_stack(4);
        Push_stack(5);
        Push_stack(6);
        Print_stack();
        Pop_stack();
        Pop_stack();
        Pop_stack();
        Pop_stack();
        
    }
    
    void Push_stack(int num)
    {
        if(stack.top < SIZE-1)
        {
            stack.top++;
            stack.arr[stack.top] = num;   
        }
        else 
            cout << "stack over flow!" << endl;
    }
    
    void Pop_stack()
    {
        if(stack.top != -1)
        {
            stack.top--;
        }
        else
            cout << "stack under flow!" << endl;
    }
    
    void Print_stack()
    {
        for(int i = stack.top; i>=0; i--)
        {
            printf("%d ",stack.arr[i]);
        }
        cout << endl;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月16日
  • 已采纳回答 9月8日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 idea自动补全键位冲突
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 定制ai直播实时换脸软件
  • ¥100 栈回溯相关,模块加载后KiExceptionDispatch无法正常回溯了
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页