错误:‘;小时’;未在此范围中声明 我在C++中编写了一个代码。我尝试在Kdevelop中使用CMake
对于我的头文件Newtime.h错误:‘;小时’;未在此范围中声明 我在C++中编写了一个代码。我尝试在Kdevelop中使用CMake,c++,class,cmake,C++,Class,Cmake,对于我的头文件Newtime.h class NewTime { public: NewTime(int = 0, int = 0, int = 0); //constructor void setTime(int, int, int); // set time void dispTime(); //print time private: int hour; int minute; int second; }; 对于NewTime.cpp,我写道: #
class NewTime
{
public:
NewTime(int = 0, int = 0, int = 0); //constructor
void setTime(int, int, int); // set time
void dispTime(); //print time
private:
int hour;
int minute;
int second;
};
对于NewTime.cpp,我写道:
#include <iostream>
#include <stdio.h>
#include "NewTime.h"
//
NewTime::NewTime(int hr, int min, int sec)
{
setTime(hr, min, sec);
}
//
void NewTime::setTime(int h, int m, int s)
{
hour = ((h >= 0 && h < 24) ? h : 0);
minute = ((m >= 0 && m < 60) ? m : 0);
second = ((s >= 0 && s < 60) ? s : 0);
}
//***
void Newtime::dispTime()
{
std::cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
<< " : " << (minute < 10 ? "0" : "") << minute
<< " : " << (second < 10 ? "0" : "") << second
<< (hour < 12 ? " AM" : " PM") << std::endl;
}
有什么想法吗?我弄糊涂了
提前感谢您的帮助您有一个输入错误,编译器抛出的第一个错误告诉您:
[…]/NewTime.cpp:17: error: ‘Newtime’ has not been declared
您必须将dispTime实现中的Newtime
更改为Newtime
,它将生成。现在,编译器不知道dispTime实现与NewTime
-类相关联
通常,如果在方法实现中未在此范围内声明“varname”,则通常是缺少或拼写错误或类/结构类型名称错误
正如John Zwinck在评论中所建议的,第一个错误通常是最相关的。如果只看第一个错误,您可能已经自己解决了问题。您的输入有误,编译器抛出的第一个错误告诉您:
[…]/NewTime.cpp:17: error: ‘Newtime’ has not been declared
您必须将dispTime实现中的Newtime
更改为Newtime
,它将生成。现在,编译器不知道dispTime实现与NewTime
-类相关联
通常,如果在方法实现中未在此范围内声明“varname”,则通常是缺少或拼写错误或类/结构类型名称错误
正如John Zwinck在评论中所建议的,第一个错误通常是最相关的。如果只看第一个错误,你可能已经自己解决了问题。仔细看看你的拼写
void Newtime::dispTime()
{
std::cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
<< " : " << (minute < 10 ? "0" : "") << minute
<< " : " << (second < 10 ? "0" : "") << second
<< (hour < 12 ? " AM" : " PM") << std::endl;
}
void Newtime::dispTime()
{
std::cout仔细检查你的拼写
void Newtime::dispTime()
{
std::cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
<< " : " << (minute < 10 ? "0" : "") << minute
<< " : " << (second < 10 ? "0" : "") << second
<< (hour < 12 ? " AM" : " PM") << std::endl;
}
void Newtime::dispTime()
{
STD::作为一个一般的点,编译C或C++代码时,通常第一个错误会级联到其他的错误,因此OP将很好地集中在编译错误的第一部分而不是其余部分。JordZink感谢这个建议,我把它添加到答案中。或者C++代码,通常第一个错误会级联到其他的错误,所以OP本来可以很好地集中在编译错误的第一部分而不是其余部分。“JordZunck谢谢你的建议,我把它添加到答案中。请在以后的问题中缩进你的代码,使它更可读。请缩进你的代码。在以后的问题中,让它更具可读性。