Linux Ubuntu C ++ .h и .cpp файл - PullRequest
       4

Linux Ubuntu C ++ .h и .cpp файл

0 голосов
/ 28 апреля 2011

У меня есть файл 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: такого файла или каталога нет. Если я добавлю string.h вместо string, у меня будет ошибка: ожидаемые '=', ',', ';', 'asm' перед S (в классе S) в my.h. В файле .cpp (если я изменяю строку с помощью string.h) после ошибки компиляции: строка в пространстве имен std не называет тип. ГДЕ Я НЕПРАВИЛЬНО?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

Ну, во-первых, кажется, что вы пришли из Java, потому что, когда вы набрали:

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

Я думаю, вы действительно имели в виду:

class S
{
  public:

    S();

  private:

    std::string myname;
};

В файле .cpp,вы набрали s вместо S: обратите внимание, что C ++ чувствителен к регистру имен имен классов.

Также, что касается вашей проблемы, я подозреваю, что вы используете компилятор C, а не C++ компилятор.Не зная использованной командной строки, я не могу сказать больше об этом.

0 голосов
/ 28 апреля 2011

Попробуйте это

#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
}
...