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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем ошибка? Подскажите... ООП C++ 
V
    Опции темы
Hidrag
Дата 4.3.2006, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Доброго времени суток!

Проблема "стандартная": контрольная в вузе. Нужно сделать програмку на С++ вот только саму IDE и компилятор вуз не предоставил, програмка консольная. Нашел и поставил Borland C++ 3.1 for DOS, но он у меня почему то не знает тип bool (???), разбираться не было времени поэтому перезагрузился в линукс, там в текстовом редакторе все набирал и компилил стандартным gcc (version 3.4.3 Mandrakelinux 10.2 3.4.3-7mdk). Первая контрольная была простая, без проблем сделал скомпилил, отослал на проверку (учусь дистанционно), вторая контрольная основанна на первой, тоже набрал ее, но она вот не хочет компилироваться и g++ выдает не понятные ошибки....

Хотел перенести все в MS VS2003, а там C++ новее smile iostream.h ему не понравился....
все исходники в прикрепленном файле, пожалуйста посмотрите, где там ошибка.....


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Contr2.zip 6,13 Kb


--------------------
user posted image
PM WWW ICQ   Вверх
En_t_end
Дата 4.3.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Hidrag,
Цитата(Hidrag @ 4.3.2006, 14:33 Найти цитируемый пост)
MS VS2003, а там C++ новее  iostream.h

юзай #include <iostream>
а имя каждого типа, класса, константы получай из namespace std.

ЗЫ bool - это тип описанный в относительно новом стандарте, в старом, коему соответствует BC++ 3.1, есть только BOOL он же int.
Добавлено @ 10:49
какие ошибки возникают при компиляции g++'ом ?
Добавлено @ 10:52
+ имя потоковых обьектов(cout, cin) тоже в пространстве имен std есть.
Добавлено @ 10:59
кстати bool занимает 1 байт, что позволяет мне предположить, что он реализован на char'е. Так что в общем случае ИМХО можно завести псевдоним: typedef char bool;
PM MAIL ICQ Skype GTalk Jabber   Вверх
Hidrag
Дата 4.3.2006, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



En_t_end,

Благодарю!!!! в MS VS 2003 исправил <iostream.h> на <iostream> и добавил
Код

using namespace std;

скомпилилась первая контрольная работа (сделанная в линухе)! значит уже прогресс есть!!! Вечером буду вторую (которая во вложенном файле) в студии мучить...
g++ ругался на конструктор и деструктор...


--------------------
user posted image
PM WWW ICQ   Вверх
Hidrag
Дата 4.3.2006, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Исправил исходник второй контрольной (из за которой и весь шум) в визуал студии все работает компилится на ура, решил попробовать скомпилить исходник в линуксе ...и тут облом... вот что выдал мне g++:


[andrey@localhost K2]$ g++ MAIN.CPP
/home/andrey/tmp/cc1lTlZu.o(.text+0x14f): In function `main':
: undefined reference to `Group::Group(int)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x1c3): In function `main':
: undefined reference to `Person::Person(int, char*, bool, double)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x1fd): In function `main':
: undefined reference to `Group::PutPerson(int, Person)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x21c): In function `main':
: undefined reference to `Group::Print()'
/home/andrey/tmp/cc1lTlZu.o(.text+0x22e): In function `main':
: undefined reference to `Group::Age()'
/home/andrey/tmp/cc1lTlZu.o(.text+0x275): In function `main':
: undefined reference to `Group::Age(int)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x2bf): In function `main':
: undefined reference to `Group::GetPerson(int)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x2c8): In function `main':
: undefined reference to `Person::Print()'
/home/andrey/tmp/cc1lTlZu.o(.text+0x2df): In function `main':
: undefined reference to `Group::operator[](int)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x2e8): In function `main':
: undefined reference to `Person::Print()'
/home/andrey/tmp/cc1lTlZu.o(.text+0x2fc): In function `main':
: undefined reference to `Group::operator[](int)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x311): In function `main':
: undefined reference to `Group::operator[](int)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x31a): In function `main':
: undefined reference to `operator+(Person&, Person&)'
/home/andrey/tmp/cc1lTlZu.o(.text+0x35f): In function `main':
: undefined reference to `Group::~Group()'
/home/andrey/tmp/cc1lTlZu.o(.text+0x389): In function `main':
: undefined reference to `Group::~Group()'
collect2: ld returned 1 exit status

в принципе не так уже важно, но все равно интересно, почему в линухе не компилится а в винде под VS 2003 все работает, вроде бы стандарт языка один и в коде нет ничего что привязывало бы к платформе....


--------------------
user posted image
PM WWW ICQ   Вверх
En_t_end
Дата 4.3.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Hidrag
Дело в том, как я и ожидал, ты избалованный VS не создал обьектных файлов smile посмотри здесь:
http://www.firststeps.ru/linux/r.php?3
PM MAIL ICQ Skype GTalk Jabber   Вверх
Hidrag
Дата 4.3.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



En_t_end,
Оппаньки..... не знал....
Студией тоже избалован, просто и с С++ не сталкивался, а тут по учебе пришлось...

Спасибо за линк! Даже захотелось за С++ взяться, хотя больше тяготею все же к C#, а в никсах не нашел нормальной IDE.... хотя скорее искал аналог VS


--------------------
user posted image
PM WWW ICQ   Вверх
En_t_end
Дата 4.3.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ОФФТОПИК
Цитата(Hidrag @ 4.3.2006, 22:29 Найти цитируемый пост)
Даже захотелось за С++ взяться, хотя больше тяготею все же к C#, а в никсах не нашел нормальной IDE.... хотя скорее искал аналог VS

Если в *nix появится C#, то это будет означать только одно - полный крах компании Майкрософт!
ЗЫ C++ - это лично для меня катализатор, обеспечавший реакцию профессионального роста, как программиста.
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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