还没找到另一个'成员声明'

时间:2017-02-09 23:39:06

标签: c++ eclipse mingw

自从我编写任何C ++以来已经有一段时间了,我只是想制作一个简单的程序来复制不同类型的时钟来刷新我的记忆。

我已经开始写一个Clock超类,除了我的构造函数/析构函数之外,每个方法都得到Member declaration not found。我认为它在某个地方是一个小错误,但我无法发现任何东西。

Clock.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_ */

Clock.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;
}

2 个答案:

答案 0 :(得分:1)

我怀疑错误消息有点长,这有助于将其视为一个整体 话虽如此,但错误可能是由于您的定义应该是:

void Clock::setTime(int secs, int mins, int hrs) { /* ... */ } 

而不是:

Clock::setTime(int secs, int mins, int hrs) { /* ... */ } 

也就是说,在您的情况下,错过了返回类型 这同样适用于print

答案 1 :(得分:0)

实现文件(Clock.cpp)中缺少以下方法的返回类型。

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;
}