Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
9-16018
BoGoMoL
2003-07-18 20:46
2004.02.06
Поиск кратчайшего пути


1-16486
Night Flame
2004-01-27 15:28
2004.02.06
DrawGrid


14-16737
SkyRanger
2004-01-16 04:07
2004.02.06
Компьютерный юмор


4-16834
vitalmoya
2003-12-01 23:03
2004.02.06
Название, класа по идентификатору


3-16090
dilp
2004-01-11 03:36
2004.02.06
runtime определение поля как lookup ?