没有主体或成员初始化的类构造函数?

人群

通读The C++ Programming Language, 4th Edition,有一个类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 的隐式 int 规则)

身体/初始化在哪里?所有以前的构造函数要么通过成员列表初始化 ( :) 或在函数体中初始化{}我在这里都没有看到,所以我想知道这些值是如何初始化的。

史蒂夫

构造函数不指定返回类型,也不返回任何内容。

它没有主体,因为它只是声明 - 定义将在其他地方,看起来像

Circle::Circle (Point p, int rr)
{
 ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有主构造函数,类扩展 AppCompatImageView 超类型初始化是不可能的

来自分类Dev

没有默认构造函数和已删除副本构造函数初始化的对象的类成员数组

来自分类Dev

在没有构造函数的类中初始化变量

来自分类Dev

在C ++中的自定义类的构造函数中初始化没有参数的静态const类成员

来自分类Dev

构造函数未初始化嵌套类的成员

来自分类Dev

在构造函数中初始化类成员变量

来自分类Dev

构造函数是否应该初始化类的所有数据成员?

来自分类Java

有关Java构造函数和类成员初始化的问题

来自分类Dev

如何从子类的构造函数初始化父类的私有成员

来自分类Dev

显式初始化没有默认构造函数的成员

来自分类Dev

没有默认构造函数的成员对象的 C++ 初始化:

来自分类Dev

综合默认构造函数如何初始化已初始化的类成员?

来自分类Dev

每个构造函数成员初始化器列表初始化const数据成员,错误:没有匹配的调用函数

来自分类Dev

在类声明或构造函数初始化器列表中初始化简单成员

来自分类Dev

在没有构造函数的情况下初始化const c ++类

来自分类Dev

仅使用一个静态方法(没有构造函数)初始化类

来自分类Dev

C ++类:在没有构造函数重载的情况下初始化属性

来自分类Dev

没有用于初始化类的匹配构造函数

来自分类Dev

当类没有constexpr构造函数时,简化冗余的std :: array初始化

来自分类Dev

C ++的类变量可以在没有Java构造函数的情况下初始化吗?

来自分类Dev

基类初始化错误,没有匹配的构造函数

来自分类Dev

没有用于初始化可变参数模板类的匹配构造函数

来自分类Dev

如何初始化具有构造函数的动态类

来自分类Dev

聚合初始化绕过私有类构造函数

来自分类Dev

C ++没有匹配的构造函数的[]初始化

来自分类Javascript

初始化状态,没有构造函数在反应

来自分类Dev

没有构造函数的C ++零初始化

来自分类Dev

构造函数没有初始化正确的值

来自分类Dev

构造函数的成员初始化器列表不能包含超类的成员?

Related 相关文章

  1. 1

    没有主构造函数,类扩展 AppCompatImageView 超类型初始化是不可能的

  2. 2

    没有默认构造函数和已删除副本构造函数初始化的对象的类成员数组

  3. 3

    在没有构造函数的类中初始化变量

  4. 4

    在C ++中的自定义类的构造函数中初始化没有参数的静态const类成员

  5. 5

    构造函数未初始化嵌套类的成员

  6. 6

    在构造函数中初始化类成员变量

  7. 7

    构造函数是否应该初始化类的所有数据成员?

  8. 8

    有关Java构造函数和类成员初始化的问题

  9. 9

    如何从子类的构造函数初始化父类的私有成员

  10. 10

    显式初始化没有默认构造函数的成员

  11. 11

    没有默认构造函数的成员对象的 C++ 初始化:

  12. 12

    综合默认构造函数如何初始化已初始化的类成员?

  13. 13

    每个构造函数成员初始化器列表初始化const数据成员,错误:没有匹配的调用函数

  14. 14

    在类声明或构造函数初始化器列表中初始化简单成员

  15. 15

    在没有构造函数的情况下初始化const c ++类

  16. 16

    仅使用一个静态方法(没有构造函数)初始化类

  17. 17

    C ++类:在没有构造函数重载的情况下初始化属性

  18. 18

    没有用于初始化类的匹配构造函数

  19. 19

    当类没有constexpr构造函数时,简化冗余的std :: array初始化

  20. 20

    C ++的类变量可以在没有Java构造函数的情况下初始化吗?

  21. 21

    基类初始化错误,没有匹配的构造函数

  22. 22

    没有用于初始化可变参数模板类的匹配构造函数

  23. 23

    如何初始化具有构造函数的动态类

  24. 24

    聚合初始化绕过私有类构造函数

  25. 25

    C ++没有匹配的构造函数的[]初始化

  26. 26

    初始化状态,没有构造函数在反应

  27. 27

    没有构造函数的C ++零初始化

  28. 28

    构造函数没有初始化正确的值

  29. 29

    构造函数的成员初始化器列表不能包含超类的成员?

热门标签

归档