问题描述
- C++,请问这句代码是什么意思
-
Rectangle( int a=0, int b=0):Shape(a, b) { }下面是完整的代码
#include
using namespace std;class Shape {
protected:
int width, height;
public:
Shape( int a=0, int b=0)
{
width = a;
height = b;
}
int area()
{
cout << "Parent class area :" <<endl;
return 0;
}
};
class Rectangle: public Shape{
public:
Rectangle( int a=0, int b=0):Shape(a, b) { }
int area ()
{
cout << "Rectangle class area :" <<endl;
return (width * height);
}
};
解决方案
就是定义了一个Shape图形类,提供一个求图形面积的方法;然后又定义了一个Rectangle矩形类继承这个Shape父类,重写了父类计算面积的方法。
Rectangle( int a=0, int b=0):Shape(a, b) { }这是定义子类的构造函数啊。
解决方案二:
子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法
因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。
构建子类对象时一定会先调用父类的构造函数,子类默认调用父类的无参构造函数,当然也可以用初始化参数列表指定调用父类的构造函数
(这里就是这个意思)