我非常困惑,为什么我突然得到这个奇怪的错误:
Time.h是一个非常简单的类,它在类描述的末尾有一个分号,所以我很确定我的代码在这里是正确的..然后我得到相同的错误:Microsoft Visual Studio 10.0\VC\include \记忆..任何想法!?!?谢谢!
编译器输出
1>ClCompile:
1> Stop.cpp
1>c:\projectnextbus\Time.h(17): error C2143: syntax error : missing ';' before 'using'
1>c:\projectnextbus\Time.h(17): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1> NextBusDriver.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory(16): error C2143: syntax error : missing ';' before 'namespace'
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory(16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Run Code Online (Sandbox Code Playgroud)
更新:无法发布所有代码,因为这是针对学校项目的,我们不应该在提交之前发布,但小片段应该没问题.
time.h中
#ifndef TIME_HPP
#define TIME_HPP
#include <string>
#include <sstream>
using namespace std;
class Time {
// Defines a time in a 24 hour clock
public:
// Time constructor
Time(int hours = 0 , int minutes= 0);
// POST: Set hours int
void setHours(int h);
// POST: Set minutes int
void setMinutes(int m);
// POST: Returns hours int
int getHours();
// POST: Returns minutes int
int getMinutes();
// POST: Returns human readable string describing the time
// This method can be overridden in inheriting classes, so should be virtual so pointers will work as desired
string toString();
private:
string intToString(int num);
// POST: Converts int to string type
int hours_;
int minutes_;
};
#endif
Run Code Online (Sandbox Code Playgroud)
DepartureTime.h(继承类)
#ifndef DEPARTURE_TIME_HPP
#define DEPARTURE_TIME_HPP
#include <string>
#include "Time.h"
using namespace std;
class DepartureTime: public Time {
public:
// Departure Time constructor
DepartureTime(string headsign, int hours=0, int minutes=0) : Time(hours, minutes), headsign_(headsign) { }
// POST: Returns bus headsign
string getHeadsign();
// POST: Sets the bus headsign
void setHeadsign(string headsign);
// POST: Returns human readable string describing the departure
string toString();
private:
// Class variables
string headsign_;
};
#endif
Run Code Online (Sandbox Code Playgroud)
OJ.*_*OJ. 16
发生这种情况时,一个包含文件具有在一个错误(或缺少分号)结束的文件和该文件之前,另一个立刻就包含.生成的错误表示第二个包含文件而不是第一个包含文件存在问题.因此,作为一个起点,请确保,如果您有一个在Time.h之前包含的文件,那么它中没有任何错误.
粘贴.h和.cpp文件的内容肯定会有所帮助,而不仅仅是错误消息.
归档时间: |
|
查看次数: |
20671 次 |
最近记录: |