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(){} 

猜你喜欢

转载自blog.csdn.net/rong_bao_bao/article/details/84181270