linux ubuntu c ++ .h和.cpp文件

时间:2011-04-28 08:32:33

标签: c++ linux ubuntu

我有一个my.h文件:

#ifndef __MY__
#define __MY__

#include <string>
#include <time.h>

class S
{
    public: S();
    std::string myname;
};

#endif

my.cpp

#include "my.h";

#include<string>
#include<iostream>

using namespace std;

S::S()
{
    // .. code
}

我想创建一个so文件。创建它时没有错误。但是当我编译.h文件时,它说:string:没有这样的文件或目录。如果我pus string.h而不是字符串我有错误:expect'=',',',';','asm',在my.h中的S(在S类)之前。 在.cpp文件中(如果我用string.h更改字符串)我在编译错误之后:在命名空间std中的字符串没有命名类型。我错在哪里?

2 个答案:

答案 0 :(得分:0)

试试这个

#ifndef MY_H
#define MY_H
#include <string>
#include <time.h>

class S
{
public: S();
std::string myname;
};

#endif



#include "my.h"
#include<string>
#include<iostream>

using namespace std;

S::S()
{
    //code
}

答案 1 :(得分:0)

嗯,首先,你似乎是来自java,因为当你输入:

class S
{
  public: S();
  std::string myname;
};

我猜你的意思是:

class S
{
  public:

    S();

  private:

    std::string myname;
};

.cpp文件中,您键入了s而不是S:请注意,C ++在类名称方面区分大小写。

此外,关于您的问题,我怀疑您当前正在使用C编译器而不是C++编译器。如果不知道使用过的命令行,我就不能多说了。