[英]Redefinition of a class C++
我正在开发一个时钟程序,并且Clock外部类有问题,它在Clock.cpp文件中给我错误“ Clock :: Clock()的重新定义”
Clock.cpp
#include <iostream>
#include <iomanip>
#include "Counter.h"
#include "Clock.h"
using namespace std;
Clock::Clock()
{
}
void Clock::Tick() {
_seconds.Increment();
if (_seconds.Value() == 60)
{
_seconds.Reset();
_minutes.Increment();
if (_minutes.Value() == 60)
{
_minutes.Reset();
_hours.Increment();
if (_hours.Value() == 24)
_hours.Reset();
}
}
}
void Clock::Reset()
{
_hours.Reset();
_minutes.Reset();
_seconds.Reset();
}
void Clock::PrintTime()
{
cout << setfill('0') << setw(2) << _hours.Value() << ":";
cout << setfill('0') << setw(2) << _minutes.Value() << ":";
cout << setfill('0') << setw(2) << _seconds.Value();
}
时钟
#ifndef CLOCK_H
#define CLOCK_H
class Clock
{
private:
Counter _hours;
Counter _minutes;
Counter _seconds;
public:
Clock(): _hours("hours"), _minutes("minutes"), _seconds("seconds"){};
void Tick();
void Reset();
void PrintTime();
};
#endif // CLOCK_H
标头保护包含在内,但编译器不断给出错误:/任何帮助将不胜感激。
正如@Craig Young在评论中指出的那样 ,您已经实现了Clock构造函数。
Clock(): _hours("hours"), _minutes("minutes"), _seconds("seconds"){};
只需更改头文件,使其仅声明构造函数即可:
Clock();
并在源文件中实现它:
Clock::Clock(): _hours("hours"), _minutes("minutes"), _seconds("seconds")
{
}
将声明保留在头文件中,将实现保留在源文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.