C++編譯提示“undefined reference to...”
阿新 • • 發佈:2018-11-17
編寫的一個簡單C++時鐘Clock類,放入了標頭檔案中,主函式在呼叫標頭檔案進行編譯時出現上述錯誤,具體程式碼如下:
clock.h:
#include <iostream> using namespace std; class Clock { private: int h,m,s; public: Clock(); ~Clock(); void SetTime(int h,int m,int s); void AddOneS(); void ShowTime(); }; void Clock::SetTime(int h,int m,int s) { this->h = h; this->m = m; this->s = s; } void Clock::ShowTime() { cout<<h<<":"<<m<<":"<<s<<endl; }
主函式:
#include "clock.h" //呼叫自定義標頭檔案時一點要用""而不是<>
using namespace std;
int main(void)
{
Clock c1,c2;
c1.SetTime(2,45,36);
c2.SetTime(6,40,34);
c1.ShowTime();
c2.ShowTime();
return 0;
}
錯誤提示:
檢視錯誤原因是“沒有定義引用Clock::Clock()與Clock::Clock()”
原來是建構函式與解構函式沒有函式體,解決方法
(1):在類中定義函式體:
(2):在類外定義函式體:void Clock::Clock(){} void Clock::~Clock(){}