![]() |
http://www.kalinin.ru/programming/ab...15_02_02.shtml
Не со всем я там согласен, но всё же очень уважаю Андрея Калинина -- его заметки достаточно сильно повлияли на моё программисткое мировозрение (я ведь, по сути, ещё совсем новичёк). Кстати, он там организовал небольшоё дайджест -- часто попадаются интересные ссылки (хотя бы про перегрузку пробела в C++), обычно хотя бы частично вязанные с программированием. Добавлено: Цитата:
|
ivank Не а не понял!
|
Цитата:
приятнее читать запись типа c = a + b * d, нежели c = a.Add(b.Mul(d)) единтсвенно, перегрузку нестандартная, тогда да, но не всегда :D хотя страница у него хорошая, часто посматриваю Apis.NET Цитата:
|
VuDZ
Цитата:
Цитата:
Код:
c = a + b * d; В случае: Код:
Assign( &c, Add( a, Mul( b, d ) ) ); Но мы можем это прооптимайзить это ручками: Код:
Assign( &c, Multiply_Add( b, d, a ) ) Код:
Multiply_Add_Assign( b, d, a, &c ); С операторами такое не прокатит. Хотя, я недавно прочитал "Дизай и эволюци C++" by Straustrup, так он хотел ввести перегрузку нескольких операторов сразу. Т. ечто-то вроде этого: Код:
class some_class Добавлено: Что-то я увлёкся -- в тему "Как стать программистом..." это не катит |
тэкс... что-то мне начали читать лекции по оптимизации кода :<
ivank Цитата:
то она была раньше |
Цитата:
Цитата:
|
Цитата:
оффтопик: склероз, всё возможно на счёт операции c = a + b * d; 1. temp = b * d; 2. c = temp + a; как вилишь, тут особо оптимизировать нечего, ну да ладно. [s]PS так как там поживают holywars?[/s] |
Как нечего? Допустим, у нас есть гипотетичесский оператор
Код:
class some_class Код:
*this = a + b * d; Реализация номер 2: Код:
*this = b; Добавлено: Цитата:
|
ты знаешь, можно ведь использовать и +=, если данные не важны:
b *= c; a += b; и всё :> |
VuDZ
Если написать Код:
b *= c; Код:
c = b; Если б можно было перегружать последовательность операторов, то c = a + b * d; смотрелось бы лучше (привычнее), а эффективно было бы так же. |
ivank
Цитата:
|
Время: 18:58. |
Время: 18:58.
© OSzone.net 2001-