注册 登录
编程论坛 C++教室

[求助]关于调用构造函数的问题

cbingli 发布于 2007-05-18 09:46, 454 次点击
#include <iostream>
class date{

public:
date(int M,int Y,int D):year(1990),month(1),day(1){}
private:
int year,month,day;
};
class calendar{
public:
calendar(int M,int Y){ d=date(M,1,Y);}//要怎样我才能在函数定义中去实现d的初始化;
private:
date d;
};
这是《数据结构C++语言描述》中的代码,书上的代码好象不能运行。

我这样:d(...){}初始化可以, 但一旦要函数定义中对d进行初始化就不行,说没有匹配的函数,要怎么改才可以呢?

请高人指点...
2 回复
#2
herbert_19872007-05-18 14:44
应该是忘了写默认构造函数date(){}了吧。
class date{

public:
date(){}
date(int M,int Y,int D):year(1990),month(1),day(1){}
private:
int year,month,day;
};
#3
cbingli2007-05-18 16:49

嗯,大概明白了,当用户自己定义了构造函数时,编译器将不会自动创建default构造函数,所以calendar中的d无法初始化。

1