C ++类构造函数混淆

时间:2013-04-27 23:01:29

标签: c++ string class g++

我有2个文件,Chrono.cpp和Chrono.h。

Chrono.h

class Appointment {
public:

    Appointment( Date d , string n ) ;
    Appointment() ;

    int get_day() const { return date.d; }
    int get_month() const { return date.m; }
    int get_year() const { return date.y; }
    string get_name() const { return name ; }

    Date date ;
    string name ;

} ;

Chrono.cpp

Appointment::Appointment( Date dd , string nn )
    : date( dd ) , name( nn ) 
{ 
    //if(!is_date(yy,mm,dd))throw Invalid(); 
}

我继续收到此错误,或者说它与.h文件不匹配。

Chrono.cpp:17:1: error: prototype for āChrono::Appointment::Appointment(Chrono::Date, String)ā does not match any in class āChrono::Appointmentā
Chrono.h:34:7: error: candidates are: Chrono::Appointment::Appointment(Chrono::Appointment&&)
Chrono.h:34:7: error:                 Chrono::Appointment::Appointment(const Chrono::Appointment&)
Chrono.h:42:2: error:                 Chrono::Appointment::Appointment(Chrono::Date, std::string)
Chrono.h:41:2: error:                 Chrono::Appointment::Appointment()

两个文件都有#include字符串,而.cpp文件位于std名称空间中。我也尝试在头文件中使用std :: string。到目前为止,我所做的一切都没有奏效。任何帮助表示赞赏。另请注意,Date在其他地方定义并且正常工作。

1 个答案:

答案 0 :(得分:1)

你拼错了“字符串”。在您的代码中,它显示为string,但在错误中显示为String