编写的一个简单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(){}