上面的错误发生在我实现构造函数的行上。我做了一个评论指出那条线。任何帮助非常感谢。
#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 ++构造函数,看看能否找出问题所在。没运气。
答案 0 :(得分:8)
在课程声明后你需要;
。由于你没有它,当编译器到达Stopwatch::Stopwatch()
时,该类尚未被声明,因此抱怨它是一种新类型。
答案 1 :(得分:0)
您宣布的是一个课程,但最后没有;
:
...
std::vector<lap> lapsvec;
};
应该解决它: