C++有个地方不明白(构造函数)

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:11:17
我建立一个类employee,有一个数据成员string name,还有一个数据成员是Date birthday(Date是另外一个类,有数据成员int y,int m,int d,且Date和employee并非继承的关系),请问该如何编写类employee的构造函数?
回答的好有分加。。。
咯噢可,你的第二个好懂,第一个不知道如何来实现,是不是每次构造employee的对象都得构造一个Date类的对象作为参数?
☆真诚到永远☆ 你说的很有道理,是该用初始化列表的方式来编

楼上的是不正确的,如果Date的三个int成员是私有的,那么你的代码就会编译通不过。
构造函数写起来很简单,如果Date有构造函数的话,尽可能地在构造函数的初始化部分调用Date的构造函数来初始化Date birthday对象。如:
class Date
{
private:
          int y,m,d;
public:
          Date(int y1=0,int m1=0,int d1=0):y(y1),m(m1),d(d1){}//注意:后的部分,这部分为初始化,比起在函数体内再对各个成员进行赋值,效率要高。
};

class employee
{
public:
          employee(string temp,int y,int m,int d):name(temp),
                    birthday(y,m,d)//这里调用的是刚才定义的那个Date的构造函数
          {}
          employee(string temp,Date d):name(temp),
            &nb