我是初学者。我不知道为什么我不能使用字符串。它说string does not have a type
。
的main.cpp
#include <iostream>
#include <string>
#include "Pancake.h"
using namespace std;
int main() {
Pancake good;
good.setName("David");
cout << good.name << endl;
}
Pancake.h
#ifndef PANCAKE_H
#define PANCAKE_H
#include <string>
class Pancake {
public:
void setName( string x );
string name;
protected:
private:
};
#endif // PANCAKE_H
Pancake.cpp
#include <iostream>
#include "Pancake.h"
#include <string>
using namespace std;
void Pancake::setName( string x ) {
name = x;
}
这只在我使用字符串时才会发生。当我使用整数并在string x
的所有实例中将int x
替换为string x
时,它就会起作用。但为什么呢?
答案 0 :(得分:7)
您只是在头文件中遗漏了命名空间:
#ifndef PANCAKE_H
#define PANCAKE_H
#include <string>
class Pancake {
public:
void setName( std::string x );
std::string name;
protected:
private:
};
#endif // PANCAKE_H
最好避免使用using namespace ...
,而是在添加命名空间之前接受额外的输入。