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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi >> C++, Переход 
:(
    Опции темы
Romikgy
Дата 1.12.2006, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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





--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bel_nikita
Дата 1.12.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Цитата(Romikgy @ 30.11.2006,  23:18)
Да интересная вещь эти синглтоны, только смысл в них, хм... даже не знаю, 
имхо их придумали дабы даже логику какой либо программы обезопасить в коде, только зачем?
имхо если правильно продуманая логика, то синглтоны не нужны!
(да и заменить можно их, правда не самим языком а возможностями системы очень просто)

Добавлено @ 00:19 
Имхо можно еще глобальный указатель к томуже прикрутить  smile

Синглтон - это вариант глобальной переменной, но создать второй объект такого же типа нельзя.  В этом собственно и вся разница. И с точки зрения клиента объект класса синглтон владеет сам собой.
А применять сингл можно много где: keboard, screen, printer и т.д. Создавать вторые экземпляры таких классов неразумно, а порой и abnormal operation.


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
nickless
Дата 1.12.2006, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


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

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



Цитата(MAKCim @ 30.11.2006,  20:24)
я даже толком и не вспомню для чего они нужны  smile 

Ну правильно, а дельфисты без шаблонов спокойно обходятся :-)

Цитата(MAKCim @ 30.11.2006,  20:24)
Как же тогда реализовать паттерн Singleton?

тут про шаблоны всякие для delphi


Опишу, как в Delphi (VCL) реализована работа с разными графическими форматами, там используется все фичи, о которых я писал  smile 

Так вот, в graphics.pas декларированы классы TBitmap, TGraphic, TPicture и еще несколько. TGraphic это абстрактный класс с общим для картинок интерфейсом, типа читать/писать из файла/стрима, рисовать себя на канве итд. TBitmap наследован от TGraphic и читает *.bmp. 
TPicture имеет почти тот же интерфейс, как и TGraphic, но работает с любым известным форматом, так как выбирает нужного потомка TGraphics из известных.
Работает это примерно так: в секции initialization потомка TGraphics вызывается функция из graphics.pas, которая регистрирует новый формат. Когда TPicture надо открыть файл, она перебирает все форматы, вызывая статический метод, который возвращает nil если формат не поддерживается, или метакласс TGraphicClass (= class of TGraphics). С помощю этого метакласса TPicture создаёт нужный класс, примерно так (код не из graphics.pas):
Код

...
FFormat := GetFormat(FileName);
if (FFormat <> nil)
    FGraphic := FFormat.Create(FileName);
...

Это можно реализовать на C++ с помощю Factory pattern, но не так элегантно и коротко  smile 

А вот что ИМХО нельзя реализовать, так это удобное использование, если например хочется поддержки png, gif, tiff итд, надо скачать что-то типа TPNGGraphic, TTIFFGraphic, TGIFGraphic и просто добавить их в uses, и все компоненты VCL (и собственные), использующие TPicture начнут поддерживать png, tiff, итд без переделок в коде.

Ну а указатели на методы классов (events) используются для того, чтобы все прогрессбары итд, спокойно, без изменений в коде могли показывать прогресс при открытии/записи в файл этих новых форматов.

ЗЫ:
Вспомнил еще одну фичу: properties

ЗЗЫ:
Кстати, в delphi с помощью properties реализуется различный доступ на элементы списков при чтении/записи, как в C++ operator[]-ом.

Это сообщение отредактировал(а) nickless - 1.12.2006, 01:26


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Artemios
Дата 1.12.2006, 03:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



[offtop]
Цитата(Romikgy @  30.11.2006,  10:45 Найти цитируемый пост)
А терь точнее , или я своими высказываниями лично вас чем то оскорбил?

Вообще-то да. Но, надеюсь, не более я чем я вас smile
Цитата(Romikgy @  30.11.2006,  10:45 Найти цитируемый пост)
имхо
даже ровестики должны уважать собеседника, и разговаривать без наездов, имхо. 

А что, кто-то наезжал? Или мое обращение на "ты" ты воспринимаешь как неуважительное отношение с моей стороны?
[/offtop]


Цитата(Romikgy @  30.11.2006,  10:45 Найти цитируемый пост)
терь я понял довод и согласен с ним,
имхо можно было тоже сказать в первых постах, и я бы понял

Так с первых постов я именно об этом и пытался объяснить, вспомни: я говорил об одном алгоритме для множества различных типов.

Цитата(Romikgy @  30.11.2006,  10:45 Найти цитируемый пост)
Еще раз повторюсь не всегда меньший объем кода это меньший размер программы,
в твоем контексте(задаче) скорость разработки и написания кода будут выше, но есть и другие задачи где это может и не выполнятся!

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

Цитата(Romikgy @  30.11.2006,  11:04 Найти цитируемый пост)
и что в этом исходнике сложного для переписания на дельфи?

И я говорил, что не сомневаюсь в твоих способностях переписать на дельфи. Даже объем написанного кода будет такой же smile
Здесь другое. Посмотри, пара static методов, а вся арифметика на inline. Как я уже говорил, классы для низкоуровневых алгебраических структур самые времязатратные, на их методы приходится примерно 85-90% работы алгоритмов библиотеки.

По поводу перевода кода самих методов точно утверждать не буду, только догадка. Например:
Код

inline void M_dp::mult(const M_dp& a,  const M_dp &b) {
  it i = (it)beg;
  const_it ia = (const_it)a.beg, ib = (const_it)b.beg;
  do {
    *i++ = *ia++ + *ib++;
  } while(i < (it)end);
}

и паскалев аналог:
Код

procedure M_dp.mult(a,b: M_dp);
  var i:integer;
  begin
  for i:=1 to n do
    beg[i]:=a.beg[i]+b.beg[i];
  end;

почему-то мне кажется, что при компиляции последний вариант даст больше машинных команд. Кста, в приведенном сишном цикле ровно в sizeof(int)/sizeof(char) раза меньше итераций, чем в переведенном варианте. (хотя, конечно, мой перевод неэффективен, возможно ты сделал бы лучше).

Ну и в любом случае, ради десятка машинных команд -- делать на них call по [хз] раз в милисекунду -- непозволительная растрата.

Цитата(Romikgy @  30.11.2006,  11:04 Найти цитируемый пост)
единственое мне не известное это
static Allocator *allocator;
что есть слово с большой буквы?

Так я ж кажется говорил про менеджер памяти. Немножко оптимизирован для работы с большим набором мелких однотипных объектов. Ну вот он: allocator.hallocator.cxx.

Цитата(Romikgy @  30.11.2006,  11:04 Найти цитируемый пост)
И кса в исходном коде нет шаблонов!?

Естественно, это низкоуровневая (в моем понимании) алгебраическая структура.


Цитата(nickless @  30.11.2006,  18:51 Найти цитируемый пост)
На Delphi можно решить любую реальную проблему, которую можно решить на C++ 

Конечно. А все, что мы на каких бы то ни было языках ни писали, в принципе реализуемо на машине Тьюринга smile



Это сообщение отредактировал(а) Artemios - 1.12.2006, 04:06


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Romikgy
Дата 1.12.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(bel_nikita @  30.11.2006,  23:57 Найти цитируемый пост)
А применять сингл можно много где: keboard, screen, printer и т.д. Создавать вторые экземпляры таких классов неразумно, а порой и abnormal operation. 

На сегодняшний день , это уже не могут быть синглтонами, может быть более 1 клавы , экрана, и тем более принтера, имхо применение их (в данном примере) нелогично!
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
Вообще-то да. Но, надеюсь, не более я чем я вас

плз сцылку, на мое оскорбление вам? (дабы не обижать остальных участников форума, буду учится на своих ошибках)
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
А что, кто-то наезжал?

ваши высказывания подводят мя к такому выводу (не последние!)
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
Или мое обращение на "ты" ты воспринимаешь как неуважительное отношение с моей стороны?

нет, обращатся можете как вам будет угодно!
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
Так с первых постов я именно об этом и пытался объяснить, вспомни: я говорил об одном алгоритме для множества различных типов.

с первых постов, вы слишком много употребляли слово ловушка  smile и слишком много воды было,
только в последних постах, воды поуменьшилось, благодаря чему , я и понял ваши мысли
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
Также и я еще раз повторюсь, я с этим совершенно не спорил. 

Хоть чтото smile
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
мы же о математике дискуссию вели

тема топика (кса можете прочитать сверху) не дискуссия о матиматике, а о целесообразности перехода от Дельфи на С++ (ВООБЩЕ!!!!!)
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
Посмотри, пара static методов, а вся арифметика на inline

и что, нет методов статик в дельфи, да и инлайн другой, имхо можно обойтись и без них!
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
на их методы приходится примерно 85-90% работы алгоритмов

с этой точки зрения да , возможно скорость для вас и критична, но инлайн ф_ции всегда страдали одним недостатком! конечный размер довольно быстро растет!
Цитата(Artemios @  1.12.2006,  02:43 Найти цитируемый пост)
почему-то мне кажется, что при компиляции последний вариант даст больше машинных команд. 

имхо код преобразованый вами немного не корректен , и то что вам кажется только кажущимся и останитця (по минимуму в вашем коде)



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Artemios
Дата 1.12.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Romikgy @  1.12.2006,  10:26 Найти цитируемый пост)
и что, нет методов статик в дельфи, да и инлайн другой, имхо можно обойтись и без них!

Цитата(Romikgy @  1.12.2006,  10:26 Найти цитируемый пост)
имхо код преобразованый вами немного не корректен

Тебе же карты в руки.

Цитата(Romikgy @  1.12.2006,  10:26 Найти цитируемый пост)
тема топика (кса можете прочитать сверху) не дискуссия о матиматике, а о целесообразности перехода от Дельфи на С++ (ВООБЩЕ!!!!!)

Кса прочитал. По теме (ВООБЩЕ) высказался в своем первом здесь посте. А далее кто-то smile зацепился за сравнительную эффективность использования дельфи в математике, начал требовать доказательств, примеров кода -- в этом ключе и идет наш частный разговор, так что не надо увиливать, будто я зациклился на одной математике и на конкретных расчетах. 
Я свою позицию в этом (ЧАСТНОМ) вопросе обосновал, поэтому имею право повторить свой вопрос: примеры задач математики, где использование дельфи эффективней, нежели c++ -- где? Нет -- считаем вопрос дельфи vs математика закрытым.



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Romikgy
Дата 1.12.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
Тебе же карты в руки.

хммм .... к чему бы это ....

Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
Кса прочитал

Молодец
Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
за сравнительную эффективность использования дельфи в математике

имхо мателатика везде одинаковая, 
Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
так что не надо увиливать

и я никуда не увиливал, имхо сложение и вычитание , везде одинаковое , вы же давите что математика в С++ круче из за присутствия шаблонов, по отношению к вашей задаче , еще раз повторюсь , математика везде одинаковая, а вот та отрасль математике о которой вы говорите, может и легче реализуется на си из за шаблонов и т.п. но это малая часть где математика дельфей страдает если так можно выразится
ибо всеравно все сводится к +,-,*,/ во всех случаях!
Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
примеры задач математики, где использование дельфи эффективней, нежели c++ -- где?

еще раз математика (процессорная) везде одинаковая что в си что в паскале
но искать что то , дабы что то даказать уж увольте!
Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
Нет -- считаем вопрос дельфи vs математика закрытым.

Считайте.... ваше право!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Artemios
Дата 1.12.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Romikgy @  1.12.2006,  12:59 Найти цитируемый пост)
но это малая часть где математика дельфей страдает если так можно выразится

необоснованно.
Цитата(Romikgy @  1.12.2006,  12:59 Найти цитируемый пост)
ибо всеравно все сводится к +,-,*,/ во всех случаях!

Угу, к байтам, битам, а далее к машине Тьюринга smile
К сожалению, мой собеседник не имеет представления о современной алгебре. Вынужден констатировать бессмысленность всего предыдущего диалога между нами.
Вопрос: кой смысл было поднимать спор при отсутствии осведомленности и при нежелании обосновывать свои заявления?


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Romikgy
Дата 1.12.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Artemios @  1.12.2006,  12:39 Найти цитируемый пост)
К сожалению, мой собеседник не имеет представления о современной алгебре. Вынужден констатировать бессмысленность всего предыдущего диалога между нами.

Возможно....
Цитата(Artemios @  1.12.2006,  12:39 Найти цитируемый пост)
Вопрос: кой смысл было поднимать спор при отсутствии осведомленности и при нежелании обосновывать свои заявления?

спор был об разности С++ и дельфи, а не о 
Цитата(Artemios @  1.12.2006,  12:39 Найти цитируемый пост)
представления о современной алгебре

!!!!!
PS очень странный ваш последний пост после
Цитата(Artemios @  1.12.2006,  11:40 Найти цитируемый пост)
Кса прочитал

по поводу темы????


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
MAKCim
Дата 1.12.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата

имхо их придумали дабы даже логику какой либо программы обезопасить в коде, только зачем?
имхо если правильно продуманая логика, то синглтоны не нужны!

громкие заявления  smile, не согласен
Цитата

Как гарантировать, что у класса есть единственный экземпляр и что этот экземпляр легко доступен? Глобальная переменная дает доступ к объекту, но не запрещает инстанцировать класс в нескольких экземплярах. Более удачное решение - сам класс контролирует то, что у него есть только один экземпляр, может запретить создание дополнительных экземпляров, перехватывая запросы на создание новых объектов, и он же способен предоставить доступ к своему экземпляру

GoF
Цитата

Имхо можно еще глобальный указатель к томуже прикрутить

Коряво, имхо
nickless
Сложно мне понять до конца, как там синглетон реализован (слава богу с Делфи давно не работал  smile )
как то там все сложно  smile 
вот вполне безопасный для однопоточного использования синглетон из 9 строчек
Код

class singleton {
private:
    singleton() {}
public:
    static singleton& instance() {
        static singleton _singleton;
        return _singleton;
    }
};

Цитата

На сегодняшний день , это уже не могут быть синглтонами, может быть более 1 клавы , экрана, и тем более принтера, имхо применение их (в данном примере) нелогично!

не придирайся к конкретным примерам
по теме: любой менеджер чего-либо резонно сделать синглетоном

Это сообщение отредактировал(а) MAKCim - 1.12.2006, 17:21


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Romikgy
Дата 1.12.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(MAKCim @  1.12.2006,  16:20 Найти цитируемый пост)
любой менеджер чего-либо резонно сделать синглетоном

даже менеджер дельфи smile
Цитата(MAKCim @  1.12.2006,  16:20 Найти цитируемый пост)
не согласен

у каждого свое мнение
Цитата(MAKCim @  1.12.2006,  16:20 Найти цитируемый пост)
вот вполне безопасный для однопоточного использования синглетон из 9 строчек

что мешает мне сделать 
singleton с1, c2 ;
?

Это сообщение отредактировал(а) Romikgy - 1.12.2006, 17:33


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
MAKCim
Дата 1.12.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата

что мешает мне сделать  

сделай
то, что предложил nickless, прямо скажем несколько больше чем 9

Добавлено @ 17:36 
Цитата

singleton с1, c2 ;

private конструктор
сей код не будет компилироваться

Это сообщение отредактировал(а) MAKCim - 1.12.2006, 17:36


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Romikgy
Дата 1.12.2006, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(MAKCim @  1.12.2006,  16:35 Найти цитируемый пост)
то, что предложил nickless, прямо скажем несколько больше чем 9

100% согласен , но можно  smile 
Цитата(MAKCim @  1.12.2006,  16:35 Найти цитируемый пост)
сей код не будет компилироваться

он даже так не хочет 
Цитата(MAKCim @  1.12.2006,  16:35 Найти цитируемый пост)
singleton с1

только так
Код

singleton c1(singleton::instance());



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
MAKCim
Дата 1.12.2006, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата

только так

упс  smile 
в код добавить надо
Код

class singleton {
private:
    singleton() {}
    singleton(const singleton&);
    singleton& operator=(const singleton&);
public:
    static singleton& instance() {
        static singleton _singleton;
        return _singleton;
    }
};


Это сообщение отредактировал(а) MAKCim - 1.12.2006, 20:45


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
nickless
Дата 1.12.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


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

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



Цитата(MAKCim @ 1.12.2006,  16:20)
Сложно мне понять до конца, как там синглетон реализован (слава богу с Делфи давно не работал  smile )
как то там все сложно  smile 

В принципе там просто считаются ссылки, и объект создаётся только один раз.
Кода 33 строчки, ровно в 3 раза больше чем в твоём последнем варианте


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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