Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

Перегрузка операторов и Шаблоны   Найти похожие ветки 

 
Piter   (2004-01-15 15:41) [0]

Вот тут темы разгораются про это в C++. А объясните - что это такое?

Перегрузка операторов - это я так понимаю... ну допустим можно сделать, чтобы "+" не складывал числа, а умножал. Верно?

Только не очень понимаю, а где это может так пригодиться?

А вот насчет шаблонов - объясните так в ламерских терминах, не с примерами, а просто для чего и в чем идея


 
Ломброзо   (2004-01-15 15:46) [1]

Пожалуйста. TList знаешь? В Delphi него можно засунуть только Pointer. Или написать наследник, принимающий строго типизированный параметр. В шаблон же как параметр передаётся класс, и компилятор сам "пишет" этого самого типизированного наследника.


 
MPS   (2004-01-15 15:58) [2]

Например вот:
в си++:
struct complex {
double d;
int i;
complex& operator+(complex &c)
{ d = d + c.d; i = i + c.i; return *this; }
}
...
complex a, b, c;
...
c = a + b;

Вот так! А в дельфе ты бы делал так:
type complex = record
var d: double;
var i: integer;
end;
...
var a, b, c: complex;
...
c.d = a.d + b.d;
c.i = a.i + b.i;

Си позволяет эту рутину скрыть что делает код более читабельным и понимаемым


 
Piter   (2004-01-15 16:28) [3]

>Ломброзо © (15.01.04 15:46) [1]

не очень понял. TList знаю немного...

>В Delphi него можно засунуть только Pointer

что ты имеешь в виду? В него Pointer засунуть? Ты про какое-то его свойство, про FList или про что?

>Или написать наследник, принимающий строго типизированный параметр

чего принимающий? Ты сейчас опять же про конструктор или про что?


 
MV   (2004-01-15 16:30) [4]

Ну, нет тут такого!!!!!!!!!!!
И все!


 
euru   (2004-01-15 16:56) [5]

>MV (15.01.04 16:30) [4]

>Ну, нет тут такого!!!!!!!!!!!
>И все!

Ну, не совсем все так плохо. Для начала приведу цитату из оригинальной ветки ( http://delphimaster.net/view/14-1072265455/):


MV (25.12.03 12:47) [30]
...
Для перегрузки простых функций типа сравнения вполне можно (для простых типов) использовать Variant (он расширяемый, мы все знаем об это, конечно?), с последующим контролем типов; а для сравнения (etc) экземпляров классов никакие шаблоны не помогут. Один черт два экземпляра класса без перегрузки соответствующих операций не сравнишь.


Небольшое уточнение: у типа Variant можно перегружать все бинарные и унарные операции (а не только сравнения).

В принципе, и шаблоны в какой-то мере можно реализовать на основе этого типа.


 
Dimka Maslov   (2004-01-15 17:35) [6]

Это что новая болезнь сайта? Спрашивать про это дело?


 
Piter   (2004-01-15 17:40) [7]

Объясните на пальцах зачем нужны шаблоны классов...


 
Ломброзо   (2004-01-15 17:46) [8]

> Piter © (15.01.04 17:40) [7]

www.rsdn.ru


 
Игорь Шевченко   (2004-01-15 17:56) [9]

Piter © (15.01.04 17:40) [7]


> Объясните на пальцах зачем нужны шаблоны классов...


А где квитанция об оплате за консультацию ? Или эта...чужое время ничего не стоит ? Самому в Яндексе слова "шаблоны классов" религия набрать не позволяет ? ;)


 
DiamondShark   (2004-01-15 18:02) [10]

В яндексе будет на буквах. А надо на пальцах.


 
Piter   (2004-01-15 18:36) [11]

Да ну вас, почему бы не написать в каждую ветку сообщение аналогичное Игорь Шевченко © (15.01.04 17:56) [9] ?


 
Игорь Шевченко   (2004-01-15 18:41) [12]


> Да ну вас


Самое разумное решение. Почитай http://ln.com.ua/~openxs/articles/smart-questions-ru.html - оно полезно


 
Piter   (2004-01-16 12:55) [13]

Игорь Шевченко, да я согласен. Непонятен один момент - если сейчас заведу тему "Как устроен string" - то посыпится куча ответов людей, почитавших Т&П. И никто не будет отправлять к существующим материалам, наверняка. Забьемся? :)

А вот тут сразу посылают. Я про то и говорю, посылаете меня - посылайте и всех остальных, тут из 10 вопросов только один заслуживает внимания. А на остальные девять можно отвечать RTFM


 
KSergey   (2004-01-16 13:04) [14]

Дык на них часто так и отвечают ;)
Хотя опять же - обижаются...


 
Игорь Шевченко   (2004-01-16 13:06) [15]

Piter © (16.01.04 12:55)

Как устроен стринг - это мелкая тема. Что такое шаблоны и перегрузка операторов - это большая тема. Почувствуйте разницу.

#ifdef FLAME
Блин, 10 раз мог бы за это время в Яндексе найти кучу сайтов, где все предметно объясняется. Откуда такая любовь к халяве и неуважение к чужому времени ?
#endif


 
DiamondShark   (2004-01-16 13:11) [16]


> Piter © (16.01.04 12:55) [13]

Аналогия не в цвет.
"Как устроен string" -- информация узкоспециальная, и действительно малопубликуемая. А вот если спросишь "Как устроен TForm", то посыпятся исключительно RTFM. Забьёмся?

Точно так же и с subj.
Это информация широко описанная, страуструпов всяких в сети самосвал с тележкой.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.026 c
4-16807
DelphiM
2003-11-29 15:39
2004.02.06
Как найти и завершить процес


1-16309
Chuha
2004-01-25 16:56
2004.02.06
Прогрессия


8-16535
vev
2003-10-07 09:59
2004.02.06
Работа с цифровой фотокамерой


4-16835
Suharew
2003-12-02 21:33
2004.02.06
Заражение Exe файла


1-16266
vl_chel
2004-01-17 15:00
2004.02.06
Список функций в DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский