题解 | #重写子类计算逻辑#

重写子类计算逻辑

http://www.nowcoder.com/practice/8521afcde7d147bf9975352fc5f3fb7c

题意整理。

  • 给定一个父类Base,定义了一个计算方法,用于计算两个数相乘。
  • 要求在子类中重写这个方法,将乘法改为除法。

方法一(调用父类构造)

1.解题思路

  • 通过父类构造函数,初始化x、y的值。
  • 重写calculate方法,将乘法改为除法。

图解展示: alt

2.代码实现

#include <iostream>
using namespace std;

class Base {

private:
    int x;
    int y;

public:
    Base(int x, int y) {
        this->x = x;
        this->y = y;
    }

    int getX() {
        return x;
    }

    int getY() {
        return y;
    }

    void calculate() {
        cout << getX() * getY() << endl;
    }
};

class Sub : public Base {
    
public:
    //通过父类构造函数,初始化x、y的值
    Sub(int x,int y):Base(x,y){
        
    }
    
    void calculate(){
        //如果Y为0,输出"Error"
        if(getY()==0){
            cout << "Error" << endl;
        }
        //输出X/Y的结果
        else{
            cout << getX()/getY() << endl;
        }
    }
};

int main() {

    int x, y, z;
    cin >> x;
    cin >> y;
    Sub sub(x, y);
    sub.calculate();
    
    return 0;
}

3.复杂度分析

  • 时间复杂度:需要进行常数次操作,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
09-13 08:41
服装/纺织设计
那一天的Java_J...:你第一次参加面试吗
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务