2 xwinterwinterwinterx XwinterwinterwinterX 于 2016.02.29 11:22 提问

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);
}
};

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 12:16

就是定义了一个Shape图形类,提供一个求图形面积的方法;然后又定义了一个Rectangle矩形类继承这个Shape父类,重写了父类计算面积的方法。
Rectangle( int a=0, int b=0):Shape(a, b) { }这是定义子类的构造函数啊。

qq423399099
qq423399099   Ds   Rxr 2016.02.29 12:43

子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法
因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。
构建子类对象时一定会先调用父类的构造函数,子类默认调用父类的无参构造函数,当然也可以用初始化参数列表指定调用父类的构造函数
(这里就是这个意思)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!