通过 C ++编程语言,第4版阅读,继承自Circle
的课程Shape
是这样的
class Circle : public Shape {
public:
Circle(Point p, int rr); // constructor
Point center() const { return x; }
void move(Point to) { x=to; }
void draw() const;
void rotate(int) {} // nice simple algorithm
private:
Point x; // center
int r; // radius
};
和Shape
类
class Shape {
public:
virtual Point center() const =0; // pure virtual
virtual void move(Point to) =0;
virtual void draw() const = 0; // draw on current "Canvas"
virtual void rotate(int angle) = 0;
virtual ˜Shape() {} // destructor
// ...
};
令我困惑的部分是Circle
的构造函数:
Circle(Point p, int rr);
返回类型在哪里?在以前的所有构造函数中,返回类型都指定为void
。我找不到C ++隐式返回类型(比如C&#39的隐式int规则)
身体/初始化在哪里?所有先前的构造函数通过成员列表初始化(:
)或在函数体{}
中初始化。我在这里看不到,所以我想知道这些值是如何初始化的。
答案 0 :(得分:3)
构造函数不指定返回类型,也不返回任何内容。
它没有正文,因为它只是声明 - 定义将在其他地方,并且看起来像
Circle::Circle (Point p, int rr)
{
...
}