C++对象成员与构造函数

一个类的对象可以作为另一个类的数据成员,此时把该对象称为类的对象成员。

当一个类中出现对象成员时,该类的构造函数就要为对象成员初始化,对象成员的初始化必须在构造函数的初始化表中完成。

注意:

初始化对象成员时必须用对象成员名,而不是它的类型名。例如:

class Date

{

    int year, month, day;

    Date(int y, int m, int d)

    {

        year = y;

        month = m;

        day = d;

    }

};

class Person

{

    char name[12];

    char sex[4];

    Date birthday;

public:

    Person(char*, char*, int, int, int);

    ……

};

Person:Person(char *n, char *s, int y, int m, int d):birthday(y, m ,d)

{

    strcpy(name, n);

    strcpy(sex, s);

}

此处使用birthday(y, m, d),不能使用Date(y, m, d)。

若一个类包含对象成员,在建立该类的对象时,先调用对象成员的构造函数,初始化相应的对象成员,然后才执行该类的构造函数。

如果一个类包含多个对象成员,对象成员的构造函数的调用顺序由它们在该类中的说明顺序决定,而它们在初始化表中的顺序无关。



猜你喜欢

转载自blog.csdn.net/hahaandhehe/article/details/79617028