Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение string.h 
V
    Опции темы
XanderEVG
Дата 25.4.2011, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.4.2011

Репутация: нет
Всего: нет



Здравствуйте. Недавно пересел на Debian 6.0 и g++. попробовал компилировать приложение из нескольких файлов - возникла проблема - не видит string в файле complex.h.

прога из 3х простых файлов: main.cpp  complex.h  complex.cpp.

complex.h: 
Код

#ifndef COMPLEX_H_
#define COMPLEX_H_

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


class Complex 
{
            
     public:
    
        Complex(){};
        Complex(int TheReal, int TheImage);
        ~Complex(){}; 

        int real;    
        int image;

        string str;


    void print();

};
 
#endif /*COMPLEX_H_*/



complex.cpp
Код

#include <iostream>
#include "complex.h"

using namespace std;


Complex::Complex(int TheReal, int TheImage)
{
    real=TheReal;
    image=TheImage;

}



void Complex::print()
{

    cout<<real<<" + i"<<image<<"\n";

}






main.cpp
Код

#include <iostream>
#include "complex.h"


using namespace std;




int main()
{
    Complex q(5,2);
    q.print();

    cout<<"it work\n";

return(0);
}



. ругаеться вот так:

g++ main.cpp complex.cpp -o prog

In file included from main.cpp:2:
complex.h:19: error: ‘string’ does not name a type
In file included from complex.cpp:2:
complex.h:19: error: ‘string’ does not name a type

Причем если перенести string str из complex.h в main.cpp или complex.cpp то ее видно даже не подключая <string.h>.
когда код 3 файлов пихаю в одну кучу, то тоже все работает без проблем.

Вероятно я не понимаю что то из основ, помогите разобраться пожалуйста!


PM MAIL   Вверх
kemiisto
Дата 25.4.2011, 22:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



using namespace std; добавить в complex.h

или std::string вместо string

Linux тут невиновен. smile

Добавлено через 10 минут и 35 секунд
И да, правильно так
Код

#include <string>

.h тут не нужен.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Cheloveck
Дата 25.4.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



string.h или cstring - это сишный хедер, в котором содержатся такие объявления, как strlen, strcmp, strcat итд. Класс string объявлен в заголовочном файле string и находится, как уже сказали, в пространстве имён std.


--------------------
user posted image
PM Jabber   Вверх
XanderEVG
Дата 26.4.2011, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.4.2011

Репутация: нет
Всего: нет



О спасибо великие и могучие с++ Гуру!!! 

string действительно в пространстве имен std.

Это сообщение отредактировал(а) XanderEVG - 26.4.2011, 08:47
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.