1. 程式人生 > >C++編譯提示“undefined reference to...”

C++編譯提示“undefined reference to...”

編寫的一個簡單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):在類中定義函式體:

Clock(){}   ~Clock(){}

(2):在類外定義函式體:void Clock::Clock(){}   void Clock::~Clock(){}