-1
我有2個文件,Chrono.cpp和Chrono.h。C++類的構造函數混淆
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 :: string。目前爲止,我所做的一切都沒有奏效。任何幫助表示讚賞。還要注意日期是在其他地方定義的,並且工作正常。
編譯器不會將它識別爲std :: string,因此它會輸出String。代碼中拼寫正確 – Joshua 2013-04-27 23:06:36
@Joshua:請在文件'Chrono.cpp'中向我們展示* literal *行17。 – 2013-04-27 23:32:21