- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
struct IText{
typedef boost::shared_ptr<IText> SPtr;
virtual void draw() = 0;
virtual void add(const SPtr&) {
throw std::runtime_error("IText: Can't add to a leaf");
}
virtual void remove(const SPtr&){
throw std::runtime_error("IText: Can't remove from a leaf");
}
};
struct CompositeText: public IText{
void add(const SPtr& sptr){
children_.push_back(sptr);
}
void remove(const SPtr& sptr){
children_.remove(sptr);
}
void replace(const SPtr& oldValue, const SPtr& newValue){
std::replace(children_.begin(), children_.end(), oldValue, newValue);
}
virtual void draw(){
BOOST_FOREACH(SPtr& sptr, children_){
sptr->draw();
}
}
private:
std::list<SPtr> children_;
};
struct Letter: public IText{
Letter(char c):c_(c) {}
virtual void draw(){
std::cout<<c_;
}
private:
char c_;
};
int main(){
CompositeText sentence;
IText::SPtr lSpace(new Letter(' '));
IText::SPtr lExcl(new Letter('!'));
IText::SPtr lComma(new Letter(','));
IText::SPtr lNewLine(new Letter('\n'));
IText::SPtr lH(new Letter('H')); // letter 'H'
IText::SPtr le(new Letter('e')); // letter 'e'
IText::SPtr ll(new Letter('l')); // letter 'l'
IText::SPtr lo(new Letter('o')); // letter 'o'
IText::SPtr lW(new Letter('W')); // letter 'W'
IText::SPtr lr(new Letter('r')); // letter 'r'
IText::SPtr ld(new Letter('d')); // letter 'd'
IText::SPtr li(new Letter('i')); // letter 'i'
IText::SPtr wHello(new CompositeText);
wHello->add(lH);
wHello->add(le);
wHello->add(ll);
wHello->add(ll);
wHello->add(lo);
IText::SPtr wWorld(new CompositeText); // word "World"
wWorld->add(lW);
wWorld->add(lo);
wWorld->add(lr);
wWorld->add(ll);
wWorld->add(ld);
sentence.add(wHello);
sentence.add(lComma);
sentence.add(lSpace);
sentence.add(wWorld);
sentence.add(lExcl);
sentence.add(lNewLine);
sentence.draw(); // ptrints "Hello, World!\n"
IText::SPtr wHi(new CompositeText); // word "Hi"
wHi->add(lH);
wHi->add(li);
sentence.replace(wHello, wHi);
sentence.draw(); // ptrints "Hi, World!\n"
sentence.remove(wWorld);
sentence.remove(lSpace);
sentence.remove(lComma);
sentence.draw(); // ptrints "Hi!\n"
Анонимус 25.06.2010 19:13 # +2
guest8 31.05.2019 17:12 # −999
pushkoff 25.06.2010 19:45 # −5
Webkill 25.06.2010 20:36 # 0
Если уже видел - проходи мимо. Некоторые не видели. Какой смысл ходить и кричать "фу! я это уже видел!"? Ну молодец, что видел. Возьми с полки пирожок.
Хотя пример да, синчический. Куда прикольнее есть пример вычисления факториала на хаскеле в несколько страниц, с использованием жуткого матана. ООП-то ещё фигня.
Webkill 25.06.2010 20:39 # +1
inkanus-gray 25.06.2010 21:29 # 0
Говногость 25.06.2010 22:25 # +2
Bjarne_Stroustrup 25.06.2010 22:58 # 0
Говногость 25.06.2010 23:01 # +3
Bjarne_Stroustrup 25.06.2010 23:04 # 0
Это, кстати, не функциональные плюшки - типизация/монады и проч. это отдельная от функциональщина штука, просто в ФЯ часто встречаемая.
nil 27.06.2010 17:03 # 0
http://www.mmonline.ru/forum/read/5/6012/
Так вот, в учебнике Камынина — матан концентрированный.
А если в дополнение к лектору Камынину семинаристом Штерн, то это просто какая-то квинтэссенция матана получается...
Кто не верит, может первым бросить в меня Фихтенгольцем.
guest6 17.11.2023 05:38 # 0
как короче сделать чтобы ">" в ">" не преврщался?
Анонимус 25.06.2010 23:07 # +3
Bjarne_Stroustrup 25.06.2010 23:10 # 0
Формально математический анализ — «часть математики, в котором математические объекты изучаются методом пределов (методом бесконечно малых)» <...>. Но, поскольку сферическое быдло в вакууме понятий не имеет, чем диффуры отличаются от теории графов, то матаном обзывается вообще вся высшая математика, а то и просто любые записи со «страшными» формулами.
:)
Анонимус 26.06.2010 01:12 # 0
и XOR сделать
nil 27.06.2010 17:04 # −2
inkanus-gray 25.06.2010 23:48 # +1
Матан-наци негодует!
nil 26.06.2010 09:42 # 0
Анонимус 26.06.2010 01:05 # 0
Kornew 26.06.2010 13:08 # −1
nil 27.06.2010 13:04 # +1
tinynick 28.06.2010 10:46 # +2
Wеbkill 28.06.2010 13:21 # 0
turdman 29.06.2010 16:11 # 0
pushkoff 25.06.2010 20:42 # 0
Говногость 25.06.2010 22:31 # 0
А потом спрашиваю, откуда этот работник появился, что паттерн знает, а суёт его во все щели, где он хоть чуть чуть становится... Толку от таких знаний никаких, а то и вред...
Wеbkill 25.06.2010 23:27 # −10
Класс.
Меня смыли в унитас,
Класс.
Я наконец признаю себя говном и сливаюсь.
Я клянусь обожествлять и почитать xXx_totalwar. Он всегда прав! Тому, кто скажет обратное, я надаю по морде!
inkanus-gray 25.06.2010 23:51 # +6
Webkill 26.06.2010 00:24 # −4
Wеbkill 26.06.2010 00:33 # −6
Wеbkill 26.06.2010 00:34 # −6
inkanus-gray 26.06.2010 00:38 # +4
Теперь у каждого юзера ID проверять придётся!
Webkill 26.06.2010 00:40 # −3
Видимо, я его-таки задел..)
p.s.
> с одинаковым отображаемым именем?
возможно, буквы другие: прописная L и заглавная i в латинице пишутся одинаково... lI
или вставил "нулевой" символ, который говнокодерский говнокод.ру проглотил) ФФ немного по-разному отображает имена (разное расстояние между W и e)
inkanus-gray 26.06.2010 00:48 # 0
Webkill 26.06.2010 01:02 # −4
inkanus-gray 26.06.2010 01:35 # 0
(только заметил, что 22 минуты назад Webkill об этом уже написал)
Webkill 26.06.2010 01:40 # −6
А есть разница? о_О Это как ?
Wеbkill 26.06.2010 00:51 # −4
Нихуя.
Это не я.
Govnocoder#0xFF 20.12.2010 23:04 # +2
guest 20.12.2010 23:08 # 0
Мне почему-то кажется, что это просто стишок в рифму. :-[
inkanus-gray 20.12.2010 23:10 # +2
guest 20.12.2010 23:31 # +1
pushkoff 26.06.2010 15:15 # −4
Wеbkill 26.06.2010 22:30 # −2
Сам ты говнокодерский. Сам ты сейчас у меня будешь проглатывать! Ты свои убивающие веб сайты видел?
Wеbkill 26.06.2010 00:40 # −5
Webkill 26.06.2010 01:04 # −2
Ну никому верить нельзя!)
Анонимус 26.06.2010 01:06 # +1
у одного небось e русская, а у другого -- латинсая
Webkill 26.06.2010 01:11 # −4
inkanus-gray 26.06.2010 01:40 # 0
Webkill 26.06.2010 01:49 # −1
nil 27.06.2010 11:29 # +1
Помимо уже упомянутых, i украинского и е русского, если не присматриваться (в моем стандартном линуксовом фонте) (ⅼΙӀӏIןا) вместо l, ⅰ вместо i, Ԝ вместо W.
nil 27.06.2010 11:31 # +1
Правда, с кернингом беда.
inkanus-gray 27.06.2010 14:06 # +1
ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂ
ⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ
Слабо такое зафейкать?
TarasB 27.06.2010 14:19 # −1
А почему твой ник упорно читается как ikarus-gay?
inkanus-gray 27.06.2010 14:43 # 0
Про символы: зависит не столько от браузера, сколько от комплекта шрифтов. Ни один шрифт не содержит полного Unicode (такие проекты были, правда шрифт сильно жрёт память). Так что, увлекаясь Unicode, можно нарваться на то, что у кого-нибудь нужный шрифт отсутствует, и ник нечитаем.
TarasB 27.06.2010 15:01 # 0
nil 27.06.2010 15:02 # 0
nil 27.06.2010 14:20 # 0
Ⓦ⒠⒝⒦⒤⒧⒧ 27.06.2010 14:45 # +1
Вебкилл 2.0!
Черт, набрал букв в скобочках сослепу:)
Wеbkill 27.06.2010 17:12 # 0
Ⓦ⒠⒝⒦⒤⒧⒧ 27.06.2010 20:04 # +1
Убийца убийцы интырнетов!
И еще я клон нила.
TarasB 27.06.2010 18:15 # −1
Ⓦ⒠⒝⒦⒤⒧⒧ 27.06.2010 20:05 # +1
Где здесь UTF-8?
guest8 31.05.2019 17:10 # −999
Анонимус 28.06.2010 03:27 # +1
http://www.youtube.com/watch?v=J61-afTnLho
nil 26.06.2010 09:44 # +1
Классно!
ВоруйУбивай!
Анархия!
This is obvious 26.06.2010 11:24 # +1
Webkill 26.06.2010 16:40 # −4
nil 27.06.2010 10:55 # +2
Тимур и его команда.
Они не испугались прихода фашистов и продолжили рисовать красные звезды на домах красноармейцев.
Cyanide 26.06.2010 00:27 # +5
Wеbkill 26.06.2010 00:41 # −8
Cyanide 26.06.2010 00:46 # +6
Wеbkill 26.06.2010 21:10 # −7
Soul_re@ver 26.06.2010 09:28 # 0
Wеbkill 26.06.2010 21:09 # −7
This is obvious 26.06.2010 21:13 # +3
Wеbkill 26.06.2010 21:37 # −7
Cyanide 26.06.2010 21:14 # +6
Wеbkill 26.06.2010 21:37 # −6
Wеbkill 26.06.2010 21:46 # −6
Яъ
pushkoff
хХх_totalwar
cfdev
TarasB
nil
Все личности расположены в порядке эпичности. Хотя последний просто прикольно шутит и на эпичность, в моём понимании, не катит.
pushkoff 26.06.2010 22:11 # −4
Wеbkill 26.06.2010 22:12 # −7
pushkoff 26.06.2010 22:19 # −5
Wеbkill 26.06.2010 22:20 # −7
Wеbkill 26.06.2010 22:25 # −7
Wеbkill 26.06.2010 22:36 # −7
TarasB 26.06.2010 23:18 # +6
Wеbkіll 27.06.2010 10:57 # −6
TarasB 27.06.2010 11:24 # +5
Webkіll 27.06.2010 13:00 # −5
nil 27.06.2010 15:03 # +2
Wеbkill 27.06.2010 17:15 # −3
Ⓦ⒠⒝⒦⒤⒧⒧ 27.06.2010 20:08 # −1
Wеbkill 27.06.2010 20:51 # −2
cfdev 26.06.2010 22:45 # +6
TarasB 26.06.2010 22:55 # +5
cfdev 26.06.2010 22:55 # +4
TarasB 26.06.2010 23:18 # +5
Wеbkill 27.06.2010 10:08 # +2
This is obvious 27.06.2010 11:23 # +3
nil 27.06.2010 17:49 # +2
TarasB 27.06.2010 18:16 # +1
nil 27.06.2010 18:18 # +1
PS. Или Восток Дальний и какого-нибудь Дерсу-Узала!
nil 27.06.2010 13:23 # +3
Мне тоже есть чего сказать про C++. Но только я скажу, как меня сразу обосрут и заминусуют, а меня это смущает. Тем не менее, я являюь крутейшим специалистом по скриптовому программированию под юниксом! Суровые мужики из 3547 не могут сдержать рыданий и скрежета зубовного, когда созерцают мой код — эталон краткости, читабельности и элегантности, искрометно использующего тонкие моменты стандарта!
Кстати, давеча с Эриком Блейком по поводу find срался тоже я, и счел, что он мудак, потому что, во-первых, он мудак, во-вторых, не умеет вести дискуссию, и в-третьих, не умеет трактовать стандарт. Да и вообще, кто такой Эрик Блейк?
Поэтому я завел себе клона, под которым буду резать правду-матку! Но вот сменю я ник и аватарку, чтобы не выкупили, а умище, умище-то куда девать?
Кстати, %username%, ты уже завел себе Webkill-а?
Wеbkill 28.06.2010 22:49 # −2
Меня заводить не нужно. Я сам завожусь. Вот я со вчерашнего дня пишу мега прогу. WEBKILLOS. На PHP уже написал обработку прерываний. Сборщик мусора, встроенный в систему. Уже есть драйвер для мышки. Для клавиатуры пока не успел написать. Но это впринципе не нужно. У меня будет RAD система быстрой разработки программ, встроенная в систему. Она делает прорыв в искустве программирования мышкой. Для начала эта великая операционная система будет стоить 347 $. Потом я подниму цену раза в 4, когда появится демо версия.
guest6 29.05.2024 06:55 # 0
guest6 29.05.2024 07:01 # 0
guest6 29.05.2024 07:04 # 0
guest6 29.05.2024 07:07 # 0
guest6 29.05.2024 07:10 # 0
guest6 29.05.2024 07:26 # 0
guest6 29.05.2024 08:56 # 0
guest6 29.05.2024 12:56 # 0
guest6 30.05.2024 06:56 # 0
guest6 01.06.2024 06:56 # 0
guest6 05.06.2024 06:56 # 0
guest6 18.07.2024 06:56 # 0
guest6 06.09.2024 06:56 # 0
Wеbkill 26.06.2010 22:17 # −6
Wеbkill 26.06.2010 22:21 # −6
TarasB 26.06.2010 22:56 # 0
А может, такое задание было. Знаете, дают такие изучащим ООП.
pushkoff 27.06.2010 00:42 # −4
Webkill 27.06.2010 01:16 # 0
Анонимус 27.06.2010 03:40 # 0
IMHO: на свете есть только один говноязык -- это PHP. Остальные вполне могут сущестовать -- даже basic и даже java script.
Cyanide 27.06.2010 12:57 # −2
cfdev 27.06.2010 12:59 # −1
nil 27.06.2010 13:11 # 0
Я сам — мне стыдно в этом признаться — пару лет назад отошел от системного программирования на юниксе и год программировал на VB и VBS. Ну вообще ничего знать не надо, настолько все очевидно и сопряжено — строить какие-то отчеты по выборкам из БД делается на раз! За это микрософту респект.
Но шаг влево или шаг вправо уже чреваты неиллюзорной еблей и борьбой против очевидности. Вторая сторона медали...
TarasB 27.06.2010 14:26 # +2
linux-hacker 27.06.2010 15:42 # −5
Wеbkill 27.06.2010 16:07 # −6
Wеbkill 27.06.2010 17:16 # −7
Ⓦ⒠⒝⒦⒤⒧⒧ 27.06.2010 20:07 # −5
Wеbkill 28.06.2010 10:23 # −2
cfdev 27.06.2010 22:06 # +3
koodeer 29.06.2010 16:59 # 0
AxisPod 28.06.2010 06:12 # −1
Wеbkill 28.06.2010 08:54 # −3
linux-hacker 28.06.2010 18:21 # −2
Wеbkill 28.06.2010 22:43 # −1
ЗЫ: Хочу написать свою книжку по PHP. У меня уже много идей есть.
This is obvious 29.06.2010 12:42 # +1
>>Хочу написать свою книжку
эталол.
Saehrimnir 26.10.2020 16:00 # 0
Wеbkill 28.06.2010 08:53 # −3
Wеbkill 28.06.2010 08:54 # −3