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

Поиск:

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


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


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

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



Цитата

да, а что нельзя обойтись без константных ф_ций?

просто есть перегрузка по константности - очень хорошая вещь
Код

template<class T, size_t N> class array {
private:
    T __array[N];
public:
    T operator[](size_t index) const {
        return __array[index];
    }

    T& operator[](size_t index) {
        return __array[index];
    }
};


Добавлено @ 18:09 
вообще, респект тебе, Romikgy
один тут остался и мужественно отбиваешься от злостных С/С++-ов  smile 

по теме
признай, далеко не все можно реализовать на Delphi, что можно сделать в С++ - причем не второстепенные вещи, а те, которые реально применяются при программировании

Это сообщение отредактировал(а) MAKCim - 30.11.2006, 18:12


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

PM MAIL   Вверх
skyboy
Дата 30.11.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(MAKCim @  30.11.2006,  15:54 Найти цитируемый пост)
интерфейсы можно реализовать с помощью множественного наследования, обратное, имхо, не верно

В Delphi не допускается множественное наследование классов, окромя интерфейсов - класс вполне может наследовать несколько интерфейсов. А как это "интерфейсы можно реализовать с помощью множетсвенного наследования"? Не знаю, как "у вас в С++", а "у нас в Delphi" интерфейсом называется полностью абстрактный класс(ну, когда только объявления методов + объявление свойства). А как можно "реализовать абстрактный класс при помощи множетсвенного наследования" я не представляю smile

Добавлено @ 18:24 
Цитата(MAKCim @  30.11.2006,  17:08 Найти цитируемый пост)
просто есть перегрузка по константности - очень хорошая вещь
 хорошая вещь, когда сама перегрузка есть, правильно? smile

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


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


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

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



Цитата

А как можно "реализовать абстрактный класс при помощи множетсвенного наследования"

а я не понял причем тут абстрактный класс ко множеств. насл.
пардон, понял
вместо
Цитата

интерфейсы можно реализовать с помощью множественного наследования, обратное, имхо, не верно

читать
Цитата

наследование интерфейсов можно реализовать с помощью множественного наследования абстрактных классов без данных, обратное, имхо, не верно

Цитата

Не знаю, как "у вас в С++", а "у нас в Delphi" интерфейсом называется полностью абстрактный класс(ну, когда только объявления методов + объявление свойства).

А у нас интерфейс - класс, оторый содержит только чисто-виртуальные методы
Формально - это класс, но фактически его можно считать интерфейсом за не имением отдельной концепции интерфейсов в С++
Код

class shape {
public:
    virtual void draw() const = 0;
};

class serializible {
public:
    virtual void serialize(fstream&) const = 0;
};

class rectangle:
    public shape,
    public serializible {
public:
    void draw() const {...}
    void serialize(fstream&) const {...}
};


Добавлено @ 18:30 
Цитата

хорошая вещь, когда сама перегрузка есть, правильно?

нет
это просто был хороший пример использования

Это сообщение отредактировал(а) MAKCim - 30.11.2006, 18:33


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

PM MAIL   Вверх
Alexeis
Дата 30.11.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(skyboy @  30.11.2006,  18:14 Найти цитируемый пост)
Не знаю, как "у вас в С++", а "у нас в Delphi" интерфейсом называется полностью абстрактный класс(ну, когда только объявления методов + объявление свойства). 


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

  Я бы сказал скорее так у делфи и С++ немного различаются общие концепции ООП, потому и соотвествено отличается реализация. Сишник не находит нужных ему вещей на делфи, а делфист наоборот (либо они реализованы "весьма странно"). Но реально просто несколько отличается подход к программированию. Потому делфистам не нужны все те "лишние" возможноти С++ и наоборот. Я вот, например, сейчас пишу формально на С++, но реально на делфи smile. Я строю все так как у меня было в делфи и сильно матерюсь, на крайне неудачную реализацию. Тут надо переходить от возможностей языка к концепциям програмирования на этих языках, и определять какая лучше. Ведь язык только описывает то что мы придумаем, а вот от того как мы это будем придумывать и будут отличатся средства и соотвествено все остальное будет казаться лишним. Если язык легко позволяет реализовать концепцию, структуру которую задумал, то это хороший язык. Поскольку делфистам он позволяет это делать, значит он хороший.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
skyboy
Дата 30.11.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(MAKCim @  30.11.2006,  17:29 Найти цитируемый пост)
наследование интерфейсов можно реализовать с помощью множественного наследования абстрактных классов без данных, обратное, имхо, не верно

почему неверно? почему нельзя наследовать несколько абстрактных  классов(интерфейсов - мне так привычнее называть), делегировать реализацию - и получать практически то же, что и при "прямом" множественном наследовании, затрачивая усилия на несколько дополнительных строк кода, но обходя подводные камни вроде.. а, забыл, как называется ситуация, когда Б и В - наследники А, а Г - наследник Б и В и получается конфликт наследования методов/свойств smile
PM MAIL   Вверх
Alexeis
Дата 30.11.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



 Спор о возможнастях в таком контексте считаю бесполезным, потому и не участвую  smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
skyboy
Дата 30.11.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(alexeis1 @  30.11.2006,  17:42 Найти цитируемый пост)
Ну интерфес в делфи это скорее не объект, а его описание.

я и не называл интерфейс объектом. я назвал интерфейс полностью абстрактным классом smile
PM MAIL   Вверх
nickless
Дата 30.11.2006, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(MAKCim @ 30.11.2006,  17:08)
далеко не все можно реализовать на Delphi, что можно сделать в С++ - причем не второстепенные вещи, а те, которые реально применяются при программировании

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

ЗЫ
И не надоело вам еще спорить smile 


--------------------
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   Вверх
skyboy
Дата 30.11.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(alexeis1 @  30.11.2006,  17:46 Найти цитируемый пост)
Спор о возможнастях в таком контексте считаю бесполезным, потому и не участвую 

это точно. "соратники" и "противники" так умело смешивают в кучу недостатки(НЕ-гибкость, НЕ-расширяемость) языка как стандарта, реализации языка, IDE и библиотек, что хочется убить себя об стену  smile а никак не спорить...
PM MAIL   Вверх
MAKCim
Дата 30.11.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата

в Delphi тоже хватает вещей, которых нет в C++.

знаю только одну
Цитата

На Delphi можно решить любую реальную проблему, которую можно решить на C++

нет и это было показано
Цитата

И не надоело вам еще спорить

слегка надоело smile
но еще могу  smile  


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

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


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


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

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



Цитата(MAKCim @ 30.11.2006,  18:05)
знаю только одну

Какую? 
Сейчас на вскидку на на ум приходят: указатели на методы класса (я имею ввиду независимые от типа класса), метаклассы, initialization + finalization секторы в юнитах (ИМХО), еще че вспомню, напишу.

Цитата(MAKCim @ 30.11.2006,  18:05)
нет и это было показано

Решить так как в C++ != решить вообще. 
Delphi не разчитана на написание драйверов итд., так что volatile там не сильно нужен, но реализовать все таки можно, inline asm еще никто не отменял  smile 

Цитата(MAKCim @ 30.11.2006,  18:05)
слегка надоело smile
но еще могу  smile

Тогда я тоже немного поспорю  smile 


--------------------
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   Вверх
Romikgy
Дата 30.11.2006, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(MAKCim @  30.11.2006,  17:08 Найти цитируемый пост)
просто есть перегрузка по константности - очень хорошая вещь

Цитата(MAKCim @  30.11.2006,  17:08 Найти цитируемый пост)
template<class T, size_t N> class array {
private:
    T __array[N];
public:
    T operator[](size_t index) const {
        return __array[index];
    }
    T& operator[](size_t index) {
        return __array[index];
    }
};

не совсем понял smile
что хорошего в этом коде?
Цитата(MAKCim @  30.11.2006,  17:08 Найти цитируемый пост)
вообще, респект тебе, Romikgy
один тут остался и мужественно отбиваешься от злостных С/С++-ов

аналогично MAKCim smile ибо качественных ответов и точных обоснований по разным направлениям языка, очень редко такое встречается smile
Цитата(MAKCim @  30.11.2006,  17:08 Найти цитируемый пост)
признай, далеко не все можно реализовать на Delphi, что можно сделать в С++ - причем не второстепенные вещи, а те, которые реально применяются при программировании

неа не признаю smile
есть вещи которые трудно реализовать на дельфи и легко на си , так да согласен smile но есть и наоборот  smile 
Цитата(MAKCim @  30.11.2006,  18:05 Найти цитируемый пост)
знаю только одну

и?
Цитата(MAKCim @  30.11.2006,  18:05 Найти цитируемый пост)
нет и это было показано

сцылку или пример
Цитата(MAKCim @  30.11.2006,  18:05 Найти цитируемый пост)
но еще могу 

радует  smile 
есть еще порох в пороховницах, и ягоды в .... smile (с)


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

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


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


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

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



Цитата

Какую? 

Цитата

метаклассы

Цитата

и?

Цитата

метаклассы

я даже толком и не вспомню для чего они нужны  smile 
Цитата

сцылку или пример

не, все по-новому начнется
хотя ладно  smile  помнится ты сказал, что в Delphi нет статических данных класса
Как же тогда реализовать паттерн Singleton?
Цитата

не совсем понял smile
что хорошего в этом коде?

фишка в том, что если объект array константный, то
через operator[] мы получим лишь копию объекта с заданным индексом, т. е 
Код

...
const array<int, 10> __array;
__array[6] = 78; // error
...

иначе operator[] возвращает ссылку на реальный объект, а не на копию, что позволяет писать как было показано выше
мелочь, а приятно  smile 


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

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


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


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

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



Цитата(MAKCim @  30.11.2006,  20:24 Найти цитируемый пост)
const array<int, 10> __array;
__array[6] = 78; // error


Цитата(MAKCim @  30.11.2006,  20:24 Найти цитируемый пост)
иначе operator[] возвращает ссылку на реальный объект, а не на копию, что позволяет писать как было показано выше
мелочь, а приятно

снова все через одно место smile
но понятно




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

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


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


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

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



Цитата(MAKCim @  30.11.2006,  20:24 Найти цитируемый пост)
помнится ты сказал, что в Delphi нет статических данных класса
Как же тогда реализовать паттерн Singleton?

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

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


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

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

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

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


 




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


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

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