Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:‘;小时’;未在此范围中声明 我在C++中编写了一个代码。我尝试在Kdevelop中使用CMake_C++_Class_Cmake - Fatal编程技术网

错误:‘;小时’;未在此范围中声明 我在C++中编写了一个代码。我尝试在Kdevelop中使用CMake

错误:‘;小时’;未在此范围中声明 我在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,我写道: #

对于我的头文件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,我写道:

#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谢谢你的建议,我把它添加到答案中。请在以后的问题中缩进你的代码,使它更可读。请缩进你的代码。在以后的问题中,让它更具可读性。