string does not name a type

时间:2021-07-28 09:40:30

//extern_CPP.h
#ifndef EXTERN_CPP_H
#define EXTERN_CPP_H
#include <string>
class FileSystem
{
    string filename;//错误提示:string does not name a type
public:
    FileSystem(string _filename);//错误提示:expected ')' before "_filename"
    void printFileName();
};
#endif // EXTERN_CPP_H

//extern_CPP.cpp
#include "extern_CPP.h"
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;

FileSystem::FileSystem(string _filename):filename(_filename)
{}
void FileSystem::printFileName()
{
    cout<<filename<<endl;
}

int main()
{
    FileSystem fs("filename");
    fs.printFileName();

    system("pause");
    return 0;
}
请问啥错误?

6 个解决方案

#1


头文件没有using namespace std;

#2


//extern_CPP.h
#ifndef EXTERN_CPP_H
#define EXTERN_CPP_H
#include <string>
using std::string;  //这样。。。

class FileSystem
{
    string filename;//错误提示:string does not name a type
public:
    FileSystem(string _filename);//错误提示:expected ')' before "_filename"
    void printFileName();
};

#3


引用 1 楼 dizuo 的回复:
头文件没有using namespace std;
+

#4


引用 1 楼 dizuo 的回复:
头文件没有using namespace std;


++

这就是问题所在。

如果你不愿意写using namespace std,那么将在代码中的string改写为std::string即可

#5


头文件里最好不要用 using,避免空间污染。
 
代码里改成
std::string filename;
FileSystem(std::string _filename);

#6


额 对了 谢谢各位

#1


头文件没有using namespace std;

#2


//extern_CPP.h
#ifndef EXTERN_CPP_H
#define EXTERN_CPP_H
#include <string>
using std::string;  //这样。。。

class FileSystem
{
    string filename;//错误提示:string does not name a type
public:
    FileSystem(string _filename);//错误提示:expected ')' before "_filename"
    void printFileName();
};

#3


引用 1 楼 dizuo 的回复:
头文件没有using namespace std;
+

#4


引用 1 楼 dizuo 的回复:
头文件没有using namespace std;


++

这就是问题所在。

如果你不愿意写using namespace std,那么将在代码中的string改写为std::string即可

#5


头文件里最好不要用 using,避免空间污染。
 
代码里改成
std::string filename;
FileSystem(std::string _filename);

#6


额 对了 谢谢各位