Страшный зверь сиплюсплюс

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

Есть ли смысл в переходе на С++?

Нет, переписывай заново на fpc
7
25%
Да, причем пиши под *никсы
9
32%
Нет, переходи на VBS
0
Голосов нет
А почему не Ява?
12
43%
 
Всего голосов: 28

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Aerton » 11 фев 2010, 22:21

Убедись, что скачанная версия pdcurses предназначена для сборки именно с mingw, а не msvc. Часто можно собрать и с неродными библиотеками, но иногда для этого нужны дополнительные шаги.

Попробуй собрать готовый hello world на С прямо из примера. Если будет собираться и работать, попробуй его же собрать как С++ - возможно окажется, что не хватает extern "C" или что-нибдуь подобное.

Просто ты сразу борешся на несколько фронтов: осваиваешь самый запутанный язык программирования, пытаешся сделать относительно сложную игру, осваиваешь инструментарий, работающий в неродной среде. Первый и последний можно попытаться упростить, начав делать ключевой функционал отдельными небольшими программками, в которых существенно проще найти проблемы или проверить идеи. Наример, погонять @, добившись работоспособности базового функционала curses. Систему ведения логов, связанный список с набором тестов (если не хочешь использовать std::list), и тп. Удачные прототипы можно будет внедрять в проект с минимальными переделками.

Мне кажется, ты пока просто плохо чувствуешь язык, и спотыкаешся порой на простых вещах, привыкнув думать на немного более глобальном уровне, работая с паскалем. Надо некоторое количество практики, чтобы эти вещи делались больше на автомате, чем сознательным усилием, и можно будет снова смотреть на горизонт. C++ язык очень сложный как сам по себе (сравним хотя бы по толщине типичной книги), так ещё более усуглубляется из-за множества традиций, наставляющих как делать хорошо, а что лучше знать, но не использовать.

Так что первое время по-любому будет тяжко :)

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 11 фев 2010, 22:28

В МСВС2008 работает(
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

dunno
Сообщения: 26
Зарегистрирован: 29 дек 2009, 20:57

Re: Страшный зверь сиплюсплюс

Сообщение dunno » 12 фев 2010, 08:53

Тоже проголосовал за яву, конечно, ожидая увидеть в результатах за этот пункт единственный голос (мой) - и с удивлением обнаружил, что это вообще самый популярный пункт на данный момент)) (хотя подозреваю, что это нечто вроде "пчолы" в этой голосовалке).
На самом деле многие технические детали (но не все, конечно :oops: ) ява позволяет оставить за скобками, что делает ее весьма удобной по сравнению с Си)

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Страшный зверь сиплюсплюс

Сообщение Jolly Roger » 13 фев 2010, 09:36

Почему нет варианта: рефакторинг старого? :?
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 14 фев 2010, 16:41

Рефакторинг старого подразумевается в первом)

У меня снова грабли: кажется, я не совсем разобралась с шаблонами. Объясните, пожалуйста, почему опять не компилируется...
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Aerton » 14 фев 2010, 20:05

Шаблоны - это одна большая грабля :)

Не получится так, как ты пытаешся сделать. Наследуемый класс тоже должен быть шаблоном. Есть такая конструкция

Код: Выделить всё

typedef TArray<uint8> TByteArray;
Она создаст тип TByteArray который по сути является TArray<uint8>

По мелочам (у меня из-за этого ошибки):

Cимвол \ в директивах #include - нестандартная конструкция, надо использовать /

Имя random уже используется в стандарте POSIX для функции, тебе стоит переименовать объект, чтобы не возникало накладок.

Sleep - это win32 API? Стандартная функция называется sleep. Лучше использовать SDL_Delay, которая вызовет что надо для данной системы.

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 14 фев 2010, 20:12

Код: Выделить всё

typedef TArray<uint8> TByteArray;
TByteArray* Keys;
Keys = new TByteArray(16);
выдаёт такое:

Код: Выделить всё

undefined reference to `TArray<unsigned char>::TArray(unsigned long, unsigned long)
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Aerton » 14 фев 2010, 20:23

А ты этот класс точно убрала?

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 14 фев 2010, 21:01

На всякий случай перепроверила и убедилась, что убрала. Обновила транк. Копаюсь в бустах в поисках чего-нибудь, вызвращающего имя класса или метода, из которого вызвано.
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Aerton » 14 фев 2010, 23:59

А! Как я сразу не увидел, - всё, что относится к шаблонам должно быть в .h

По правилам С++, их можно было бы написать и в .cpp, про помощи export, но ни один компилятор так делать не умеет.

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 15 фев 2010, 23:26

Проект портирования моего ланцерана на С++ окончательно утверждён - текстовый терминал для него уже реализован, осталось только сделать всё остальное. Увы, сегодня сил не осталось даже на "бегающую собачку". Aerton, спасибо огромное, даже не представляю, что б я без тебя делала! =D>
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 18 фев 2010, 13:05

Как реализуются property и как объявить тип-процедуру?
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Aerton » 18 фев 2010, 16:06

Харука-тян писал(а):Aerton, спасибо
You are welcome! :) Ты задаёшь конкретные вопросы - на них отвечать не сложно.
Харука-тян писал(а):Как реализуются property
Это когда снаружи выглядит как обычная переменная внутри объекта, но при обращении к ней вызывается специальный метод? Такого в С++ нету.
Харука-тян писал(а):и как объявить тип-процедуру?
Не понял, про что речь, - может оно называется по-другому? Есть указатель на функцию. А при помощи typedef можно сделать такой тип.

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Страшный зверь сиплюсплюс

Сообщение Харука-тян » 18 фев 2010, 16:29

Конкретные вопросы - это когда уже чем "Как по этому лабиринту с РогБасина заставить "собачку" бегать?"?) Нууу... у меня таких бывает много. С типом-процедурой разобралась, без проперти обойдусь.

Очередной вопрост из серии "ЧЯНТД":
у меня в паскале protected-поля нормально читались из классов-потомков. А тут не хочет. При попытке зафрендить класс-предок получаю over 9000 ошибок.
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Xecutor
Мастер
Сообщения: 758
Зарегистрирован: 25 мар 2008, 08:32

Re: Страшный зверь сиплюсплюс

Сообщение Xecutor » 18 фев 2010, 16:35

Харука-тян писал(а): Очередной вопрост из серии "ЧЯНТД":
у меня в паскале protected-поля нормально читались из классов-потомков. А тут не хочет. При попытке зафрендить класс-предок получаю over 9000 ошибок.
А ты при наследовании пишешь так:

Код: Выделить всё

class Child:public Base{
};
ключевое слово public.
По умолчанию в С++ наследование private

Вместо пропертей в С++ обычные сеттеры и геттеры :)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 47 гостей