麻烦使用字符串

时间:2012-07-09 13:29:05

标签: c++

我是初学者。我不知道为什么我不能使用字符串。它说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时,它就会起作用。但为什么呢?

1 个答案:

答案 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 ...,而是在添加命名空间之前接受额外的输入。