还有一个';未找到成员声明'; 自从我写了任何C++以来,已经有一段时间了,我只是想制作一个简单的程序来复制不同类型的时钟来刷新我的内存。
我已经开始编写一个还有一个';未找到成员声明'; 自从我写了任何C++以来,已经有一段时间了,我只是想制作一个简单的程序来复制不同类型的时钟来刷新我的内存。,c++,eclipse,mingw,C++,Eclipse,Mingw,我已经开始编写一个时钟超类,并为除构造函数/析构函数之外的每个方法获得了一个未找到的成员声明。我想这是个小错误,但我什么也看不出来 时钟.h /* * Clock.h */ #ifndef CLOCK_H_ #define CLOCK_H_ class Clock { private: int seconds; int minutes; int hours; public: Clock(); Clock(int, int, int); v
时钟
超类,并为除构造函数/析构函数之外的每个方法获得了一个未找到的成员声明
。我想这是个小错误,但我什么也看不出来
时钟.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;
}
/*
*Clock.cpp
*/
#包括“Clock.h”
#包括
时钟::时钟(){
秒=0;
分钟=0;
小时=0;
}
时钟:时钟(整数秒、整数分钟、整数小时):
秒(秒)、分钟(分钟)、小时(小时){
}
时钟::~Clock(){
//TODO自动生成的析构函数存根
}
时钟:设置时间(整数秒、整数分钟、整数小时){
秒=秒;
分钟=分钟;
小时=小时;
}
时钟::打印(){
std::cout我怀疑错误消息有点长,这将有助于从整体上查看它。
也就是说,错误可能是因为您的定义应该是:
void Clock::setTime(int secs, int mins, int hrs) { /* ... */ }
而不是:
Clock::setTime(int secs, int mins, int hrs) { /* ... */ }
也就是说,您的案例中缺少返回类型。
这同样适用于print
实现文件(Clock.cpp)中缺少以下方法的返回类型
Clock::setTime(整数秒、整数分钟、整数小时){
秒=秒;
分钟=分钟;
小时=小时;
}
时钟::打印(){
标准::cout
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) {
seconds = secs;
minutes = mins;
hours = hrs;
}
void Clock::print() {
std::cout << hours << ":" << minutes << ":" << seconds << std::endl;
}