尽管使用cin
cout
endl
和#include <iostream>
视为未声明的错误
#include "navigation.h"
#include <iostream>
Navigation::Navigation()
{
xPos=0;
yPos=0;
}
void Navigation::Move()
{
//get direction
int dir;
cout << "Select a direction: " << endl;
cout << "1) North 3) South" << endl;
cout << "2) East 4) West " << endl;
cin >> dir;
//move
switch(dir)
{
case 0://north
yPos++;
break;
case 1://east
xPos++;
break;
case 2://south
yPos--;
break;
case 3://west
xPos--;
break;
default:
cout << "Invalid entry" << endl;
}
}
void Navigation::Position(int &x, int &y)
{
x = xPos;
y = yPos;
}
答案 0 :(得分:13)
它们位于std命名空间中。添加以下行:
using std::cout;
using std::endl;
using std::cin;
或者,每次使用它们时,请按全名调用它们,例如:
std::cout << "Select a direction: " << std::endl;
这很快就会很烦人,也会使你的代码更难阅读。
有些人使用
using namespace std;
相反,你可能会受到不必要的副作用。您编写的类可能与std命名空间中的其他类具有相同的名称,并且您的over-broad using语句现在将导致冲突。这就是为什么你不应该在头文件中说using namespace std;
。在一个.cpp文件中没关系,但我更喜欢自己的个人陈述。无论是谁从你所包含的标题中读取你所使用的内容,它都能清楚地表明。
答案 1 :(得分:4)
他们是std
命名空间的成员,因此您需要使用std
:std::endl
,std::cout
和std::cin
对其进行限定。
答案 2 :(得分:4)
在using namespace std;
声明之后加入#include
。
答案 3 :(得分:1)
endl,cin和cout位于命名空间std中。您需要在文件顶部附近using namespace std;
,或使用std::endl
,std::cin
和std::cout
。
答案 4 :(得分:0)
您需要在[{1}}部分之后声明using namespace std;
或使用#include
,std::cout
,std::cin