помогите продублировать один код, но с модификациями

Предыдущая тема Следующая тема Перейти вниз

помогите продублировать один код, но с модификациями

Сообщение  Eric-S в Вт Янв 06, 2009 11:01 pm

Привет!

Мне нужно продублировать один код, но с модификациями.
Но проблема ещё в том, что я постоянно вношу улучшение в оригинал.
И просто не в состоянии поддерживать дубль в актуальном состоянии.

Еслибы было наследование, то оно мнебы не помогло.

Макросы. Тоже не подходят. Как я понимаю они глобальны. Мне совершенно не нужны в других местах эти алгоритмы, а тем более лишние (занятые) ключевые слова.

Что можно сделать? Если какие-нибудь возможности? Выскажитесь пожалуйста, даже если мысль кажеться вам нелепой. Лично меня уже на всякое тянет. И я просто буду искать самый лучший вариант.


вот мои варианты:

1. разделение препроцессором
Код:

print "общий код"

#if module = 1
print "код только для модуля 1"
#endif

#if module = 2
print "код только для модуля 2"
#endif

Но тут вопрос. А разве #define может переопределять? Или это можно как-то ограничить в области действия?

2. разделение дополнительной прогой
Код:


print "общий код"

#begin module1
print "код только для модуля 1"
#endbegin

#begin module2
print "код только для модуля 2"
#endbegin

А дальше я сожусь и пишу прогу, которая разложит из одного файла в два разных модуля.
Она будет копировать всё плюс код для нужного модуля.

3. вариант со статическими библиотеками. Но я не знаю, как они могут помочь. Хотя подозреваю, что всё же могут.

У кого-нибудь есть лучшие варианты? Помогите!

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  Eric-S в Вт Янв 06, 2009 11:35 pm

Ок. Вариант со статическими библиотеками отработал.
Всё сработало как нужно.
Но есть один минус.
Мне пришлось декларировать все процедуры. Один раз, от этого не збежишь. Но делать это 3 или более раз, увольте!

Хотя ещё поизвращаюсь с препроцессором. Может быть он чего подскажет хорошего.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  tux в Ср Янв 07, 2009 10:45 am

как вариант можно использовать namespace (часто сам им пользуюсь)
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  Eric-S в Ср Янв 07, 2009 1:54 pm

Объясни по подробнее. Как он здесь может помочь?
Код пожалуйста, примерный покажи.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  tux в Ср Янв 07, 2009 4:44 pm

если я правильно понимаю, то нужно следующее
Код:
namespace mod1
'тута код и переменные первого модуля, к примеру
const x=1
end namespace

namespace mod2
'тут для второго
const x=2
end namespace
использовать мона так (как элементы ООП, тока ненадо ничего создавать):
Код:
print mod1.x
print mod2.x
или так (помоему в стиле питона):
Код:
using mod1
print x
using mod2
print x
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  Eric-S в Ср Янв 07, 2009 5:41 pm

Не! Ты не понял. По сути у меня есть два класса.
В них много общего, но и много различий.
И просто я хочу написать код для двух разных программ, но в одном исходнике.

То что я демонстрировал с препроцесором, наиболее близко. Покрайней мере я смог получить из одного сорца две разных проги. Но вот декларировать их... Кажеться слишком запарно.

Я сейчас по другому пути пошел. В одном классе сливаю сразу три. Не знаю, наверное так даже лучше будет.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  Eric-S в Пн Сен 07, 2009 3:01 am

Смех сквозь слёзы.
В C++ эта проблема решаеться наследованием класса.
А ещё есть шаблоны.

Ну когда же это появиться во фрибэйсике?

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: помогите продублировать один код, но с модификациями

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения