C++ compiler prompt “undefined reference to…”[How to Fix]

Write a simple C + + clock class, put into the header file, the main function in the call header file compilation error, the specific code is as follows:

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;
}

Main function:

#include "clock.h"   //When calling custom headers, use "" instead of<>
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;
}

Error prompt:

Check the error because “reference clock:: clock() and clock:: clock() are not defined”

It turns out that there is no function body for constructors and destructors

(1) : define function body in class: clock () {} ~ clock () {}

(2) : define function body outside class: void clock:: clock() {} void clock:: ~ clock() {}

Read More: