题意整理。
- 给定一个父类Base,定义了一个计算方法,用于计算两个数相乘。
- 要求在子类中重写这个方法,将乘法改为除法。
方法一(调用父类构造)
1.解题思路
- 通过父类构造函数,初始化x、y的值。
- 重写calculate方法,将乘法改为除法。
图解展示:
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.复杂度分析
- 时间复杂度:需要进行常数次操作,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。