题解 | #求长方体表面积#
多态实现求面积体积
http://www.nowcoder.com/practice/826ed8e0d67042c49e32a7293c873538
#include<bits/stdc++.h>
using namespace std;
class rectangle {
private:
int length, width;
public:
rectangle(int x, int y) {
length = x;
width = y;
}
void set(int x, int y) {
length = x;
width = y;
}
int getlength() {
return length;
}
int getwidth() {
return width;
}
// write your code here...
//多态关键字virtual,父类声明,也可以实现(面积)
virtual int getval(){
return this->length*this->width;
}
};
class cuboid: public rectangle {
private:
int height;
public:
cuboid(int x, int y, int z): rectangle(x, y) {
height = z;
}
// write your code here...
//子类重写,实现体积
virtual int getval(){
return this->rectangle::getval()*this->height;
}
};
int main() {
int x, y, z;
cin >> x >> y >> z;
cuboid a(x, y, z);
rectangle b(x, y);
rectangle* p = &b;
cout << p->getval() << '\n';
p = &a;
cout << p->getval();
return 0;
}