如果一个类包含另一个类的对象,并且所有类都通过构造函数初始化,那么初始化如何工作?

普拉塔普·比斯瓦卡玛(Pratap Biswakarma)

我想知道一个类是否包含另一个类的对象,并且两个类都具有构造函数,如何在包含另一个类的对象的类中的构造函数中进行初始化。初始化的顺序是什么?

class Person
{
    string name;
    int age;
  public:
    Person()
    {
        name="NULL";
        age=0;
    }
};


class Student
{
    int roll_no;
    Person p;
    int division;
   public:
        Student()
        {
            roll_no=0;
            division=0;
        }
};

在此示例中,在学生类构造函数中,是否需要将类似

Student()
{
    roll_no=0;
    p.Person();
    division=0;
}

我们是否需要p.Person();初始化p?p创建时不会自动初始化,因为它具有构造函数。在这种情况下,通过构造函数初始化的顺序是什么?

songyuanyao

需要p.Person();初始化p吗?

不,你不能那样做。初始化顺序是:

  1. ...
  2. ...
  3. 然后,按类定义中的声明顺序初始化非静态数据成员。
  4. 最后,执行构造函数的主体

例如,当类型的对象Student被默认初始化时,成员roll_no首先被默认初始化,然后p通过的默认构造函数被默认初始化,Person然后division被默认初始化,最后Student调用的默认构造函数roll_nodivision获得赋值。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在另一个类构造函数中初始化一个类对象

来自分类Dev

用参数初始化另一个类构造函数中的对象

来自分类Dev

无法初始化向量来保存使用其构造函数初始化的另一个类

来自分类Dev

初始化变量后在另一个类中构造对象

来自分类Dev

在另一个类构造中初始化它时找不到类

来自分类Dev

我们可以在另一个类的构造函数的帮助下初始化对象吗?

来自分类Dev

我们可以在另一个类的构造函数的帮助下初始化对象吗?

来自分类Dev

如何通过另一个类更新/更改一个类的初始化参数?

来自分类Dev

如何初始化包含来自另一个类的实例的列表?

来自分类Dev

Java-试图使用在另一个类中传递给另一个构造函数的参数来初始化对象?

来自分类Dev

在另一个类对象中初始化一个对象(在对该构造函数执行一些操作之后)。

来自分类Dev

在另一个类对象中初始化一个对象(在对该构造函数执行一些操作之后)。

来自分类Dev

另一个类的c ++私有对象:初始化并使用它调用该类中的函数

来自分类Dev

Java:在初始化块中初始化对象时从另一个类调用对象的方法

来自分类Dev

另一个类中的参数化对象初始化

来自分类Dev

另一个类中的参数化对象初始化

来自分类Dev

一个类具有另一个类的实例的JVM初始化顺序是什么

来自分类Dev

如何使用从另一个类获得的值刷新/重新初始化一个类?

来自分类Dev

Python:如何从一个类到另一个类获取未初始化的属性

来自分类Dev

在另一个类中初始化一个指针

来自分类Dev

调用另一个类初始化程序时如何处理错误?

来自分类Dev

另一个类中的C ++类初始化,出现错误

来自分类Dev

在另一个类中初始化改造类

来自分类Dev

如何初始化一个类并将对象传递给Android中的构造函数?

来自分类Dev

如何通过从另一个类调用方法来初始化final字段?

来自分类Dev

如何通过从另一个类调用方法来初始化final字段?

来自分类Dev

如何初始化作为另一个类的成员变量的基类对象?

来自分类Dev

如何在 C# 中使用来自另一个类的初始化实例对象?

来自分类Dev

如何初始化一个类?

Related 相关文章

  1. 1

    在另一个类构造函数中初始化一个类对象

  2. 2

    用参数初始化另一个类构造函数中的对象

  3. 3

    无法初始化向量来保存使用其构造函数初始化的另一个类

  4. 4

    初始化变量后在另一个类中构造对象

  5. 5

    在另一个类构造中初始化它时找不到类

  6. 6

    我们可以在另一个类的构造函数的帮助下初始化对象吗?

  7. 7

    我们可以在另一个类的构造函数的帮助下初始化对象吗?

  8. 8

    如何通过另一个类更新/更改一个类的初始化参数?

  9. 9

    如何初始化包含来自另一个类的实例的列表?

  10. 10

    Java-试图使用在另一个类中传递给另一个构造函数的参数来初始化对象?

  11. 11

    在另一个类对象中初始化一个对象(在对该构造函数执行一些操作之后)。

  12. 12

    在另一个类对象中初始化一个对象(在对该构造函数执行一些操作之后)。

  13. 13

    另一个类的c ++私有对象:初始化并使用它调用该类中的函数

  14. 14

    Java:在初始化块中初始化对象时从另一个类调用对象的方法

  15. 15

    另一个类中的参数化对象初始化

  16. 16

    另一个类中的参数化对象初始化

  17. 17

    一个类具有另一个类的实例的JVM初始化顺序是什么

  18. 18

    如何使用从另一个类获得的值刷新/重新初始化一个类?

  19. 19

    Python:如何从一个类到另一个类获取未初始化的属性

  20. 20

    在另一个类中初始化一个指针

  21. 21

    调用另一个类初始化程序时如何处理错误?

  22. 22

    另一个类中的C ++类初始化,出现错误

  23. 23

    在另一个类中初始化改造类

  24. 24

    如何初始化一个类并将对象传递给Android中的构造函数?

  25. 25

    如何通过从另一个类调用方法来初始化final字段?

  26. 26

    如何通过从另一个类调用方法来初始化final字段?

  27. 27

    如何初始化作为另一个类的成员变量的基类对象?

  28. 28

    如何在 C# 中使用来自另一个类的初始化实例对象?

  29. 29

    如何初始化一个类?

热门标签

归档