我已经有一段时间没有编写任何 C++ 了,我只是想制作一个简单的程序来复制不同类型的时钟来刷新我的内存。
我已经开始编写一个Clock
父类(super class),并且为除我的构造函数/析构函数之外的每个方法都得到了一个未找到成员声明
。我认为这是某个地方的小错误,但我无法发现任何东西。
时钟.h
/*
* Clock.h
*/
#ifndef CLOCK_H_
#define CLOCK_H_
class Clock {
private:
int seconds;
int minutes;
int hours;
public:
Clock();
Clock(int, int, int);
virtual ~Clock();
virtual void tick() = 0;
void setTime(int, int, int);
void print();
};
#endif /* CLOCK_H_ */
时钟.cpp
/*
* Clock.cpp
*/
#include "Clock.h"
#include <iostream>
Clock::Clock() {
seconds = 0;
minutes = 0;
hours = 0;
}
Clock::Clock(int secs, int mins, int hrs) :
seconds(secs), minutes(mins), hours(hrs) {
}
Clock::~Clock() {
// TODO Auto-generated destructor stub
}
Clock::setTime(int secs, int mins, int hrs) {
seconds = secs;
minutes = mins;
hours = hrs;
}
Clock::print() {
std::cout << hours << ":" << minutes << ":" << seconds << std::endl;
}
最佳答案
我怀疑错误消息有点长,但有助于整体理解。
话虽这么说,错误可能是由于您的定义应该是这样的:
void Clock::setTime(int secs, int mins, int hrs) { /* ... */ }
代替:
Clock::setTime(int secs, int mins, int hrs) { /* ... */ }
也就是说,您的情况缺少返回类型。
这同样适用于 print
。
关于c++ - 另一个 'member declaration not found',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42148980/