这里要注意一点,获取基类的area时,一定要加rectangle::,派生类中函数名和基类相同时,基类的函数会被覆盖(shadow),不标明命名空间就会构成递归死循环

#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;
		}
		int area(){
			return length*width;
		}
};
class cuboid:public rectangle{
	private:
		int height;
	public:
		cuboid(int x,int y,int z):rectangle(x,y),height(z){}
		int area(){
			return (rectangle::area()+height*(getlength()+getwidth()))*2;
		}
		
};
int main(){
	int x,y,z;
	cin>>x>>y>>z;
	cuboid a(x,y,z);
	cout<<a.rectangle::area()<<'\n'<<a.area();
	return 0;
}