今天在学习函数,编写练习题代码时,出现上述错误信息,代码如下:
#include "pch.h"
#include <iostream>
#include<string>
void replace(int &i, int &j);
void replaceP(int *i, int *j);
bool CheckL(const string &s);
using namespace std;
int main()
{
std::cout << "Hello World!\n";
int i = 1, j = 5;
replace(i, j); //引用
replaceP(&i, &j); //指针
bool flag=CheckL("hahha");
cout << i << j<<"\n"<<flag;
}
//使用引用
void replace(int &i,int &j) {
int m = i;
i = j;
j = m;
}
//使用指针
void replaceP(int *i, int *j) {
int m = *j;
*j = *i;
*i = m;
}
//检查string对象中是否含有大写字母
bool CheckL(const string &s) {
for (auto val : s) {
if (isupper(val))
{
return true;
}
}
return false;
}
试了很多,最后才发现,using namespace std; 这个声明应该放在函数声明的前面,或者在声明中使用string的地方,写成std::string这样才能成功编译。个人猜想应该是由于没有找到string类报错。