Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • error: ‘string’ has not been declared的解决方法

    post by onelong / 2010-7-5 7:17 Monday [C++]

    今天我在ubuntu10.04编写了一个C++的小程序,有三个文件Test.cpp,Person.h,Person.cpp !在终端编译是提示
    Person.h:7: error: expected `)' before ‘name’
    Person.h:8: error: ‘string’ has not been declared
    Person.h:9: error: ‘string’ does not name a type
    Person.h:11: error: ‘string’ does not name a type
    怎么回事呢?打开Person.h查看源码如下
    #ifndef Person_H
    #define Person_H
    #include <string>
    class Person{
    public:
        Person(string name);
        void setName(string name);
        string getName();
    private:
        string _name;
    };
    #endif
    原来是using namespace std;没有写呀!在各个文件逐一加入using namespace std;

    然后 g++ -o Test Test.cpp Person.h Person.cpp
    果然编译成功了,运行一下先!
    小结:
    对于初学者经常忘记加上using namespace std;这句的
    我们知道学习C++的同志很多都是有C语言转过来的,C++中的string应该是在头文件<string>中,<cstring>只是对C语言的<string.h>的一个封装,CString 是在MFC中对string更高一级的包装

    哈哈!问题解决了!
     

    标签: linux ubuntu c c++
    引用地址:
     

    评论:

    1. zxzxy1988
      楼主...我今天也遇到了这个问题,幸亏看到了你的文章,不然还得再调两天!!!
      博主回复:哈哈

    我要评论