错误:可能无法在返回类型中定义新类型

时间:2014-04-24 23:24:53

标签: c++

上面的错误发生在我实现构造函数的行上。我做了一个评论指出那条线。任何帮助非常感谢。

#include <vector>   
#include <time.h>      

class Stopwatch
{
    enum state {UNSTARTED, RUNNING, PAUSED, FINISHED};
    struct time
    {
        unsigned hours;
        unsigned minutes;
        unsigned seconds;
    };
    struct lap
    {
       unsigned n; // lap number
       time t; // lap time
       lap* next_ptr;
    };

    public: 
    Stopwatch();
    ~Stopwatch();
    void right_button(); // corresponds to start/stop/pause
    void left_button();  // corresponds to lap/reset

    private: 
    state cur_state;
    std::vector<lap> lapsvec;

}

Stopwatch::Stopwatch() // <--------- Here's where the compiler error is
{
    cur_state = UNSTARTED;
}

/* trivial destructor */
Stopwatch::~Stopwatch() 
{
}

int main()
{
    return 0;
}

我查看了C ++构造函数,看看能否找出问题所在。没运气。

2 个答案:

答案 0 :(得分:8)

在课程声明后你需要;。由于你没有它,当编译器到达Stopwatch::Stopwatch()时,该类尚未被声明,因此抱怨它是一种新类型。

答案 1 :(得分:0)

您宣布的是一个课程,但最后没有;

 ...
    std::vector<lap> lapsvec;

};

应该解决它: