ПрограммированиеФорумОбщее

C++: каждый класс в своём модуле. В чём прикол? (21 стр)

Страницы: 120 21 22 2326 Следующая »
#300
12:19, 15 мар 2012

DevilDevil
> господи, какие же вы людишки не понятливые
> ИДЕНТИЧНЫЕ приложения (то есть одинаково выглядящие для пользователя и
> выполняющие одинаковый функционал). Только на двух разных языках. На С++ и на
> C# например. Только так можно сравнить, что круче
читай пост #282

#301
12:32, 15 мар 2012

Feo
дак не к тебе обращался то )

#302
12:37, 15 мар 2012

DevilDevil
> прям вообще не читабельно, да ????
я вижу присвоение переменной, но никак не изменение размера массива

DevilDevil
> и к тебе тоже относится
я серьезно.
свойства это средства для рефакторинга, как только отрефакторили обе стороны выражения, свойства должны исчезнуть, ибо можно дать более осмысленные имена производимым им действиям и сгрупировать эти действия в один вызов для наглядности.

как показывает практика
v.SetX()
v.SetY
v.SetZ

оно же
v.X =
v.Y =
v.Z =

читается намного хуже чем
v = Vector(x,y,z);

#303
12:38, 15 мар 2012

хорош оффтопить.

#304
12:50, 15 мар 2012

Иннокентий
> хорош оффтопить.
по теме мы разобрались давно
поэтому нормально сменить тему "попутно" на обсуждение свойств

Pushkoff
> я вижу присвоение переменной, но никак не изменение размера массива
мда
попробуй
ради интереса
сменить "парадигму мышления" с навязанной тебе ограниченными возможностями С++
на распространённую "парадигму мышления", которой пользуются ОЧЕНЬ МНОГИЕ программисты

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

"свойство" и "поле" - это немного разные понятия

#305
13:03, 15 мар 2012

DevilDevil

В случае с vector.size = 50000 есть серьезная неувязка.
Если мы не пользуемся свойствами, то получается вот так:

hr = vector.reserve(50000);
if (failed (hr) ){
    DoCleanup();
    return ERROR_MEMORY_NOT_ENOUGH;
}


Если же мы пользуемся свойствами, то придется пользоваться исключениями

try {
    vector.size = 50000
} catch (NotEnoughMemoryException e) {
    DoCleanup();
    return ERROR_MEMORY_NOT_ENOUGH;
} catch (AnotherException e) {
//
} catch (AndAnotherException e) {
//
}

Т.е. для каждого свойства должен быть заведен список возможных исключений... Концепция становится дырявой.

#306
13:06, 15 мар 2012

Ogra
> Т.е. для каждого свойства должен быть заведен список возможных исключений...
> Концепция становится дырявой.

архитектуру надо проектировать так, чтобы exception-ов не было
а если они есть - то должны быть достойным образом обработаны

кроме того концепция осмысленных Exception-ов мне значительно больше близка, чем результат с кодом ошибки

#307
13:22, 15 мар 2012

DevilDevil
> архитектуру надо проектировать так, чтобы exception-ов не было

В мемориз!

#308
13:22, 15 мар 2012

Ogra
> catch (NotEnoughMemoryException e) {
>     DoCleanup();
>     return ERROR_MEMORY_NOT_ENOUGH;
Извините конечно, но вы дурак. У вас есть исключения, GC/RAII, зачем вам коды возврата вообще? За DoCleanup вообще рЭзать надо. Ставить обработчик где нибудь совсем высоко - и если например загрузка уровня упала то спокойно верунться в меню и сказать "Извините".

#309
13:29, 15 мар 2012

zlos
Не извиню. От дурака слышу. И давайте на этом закончим с оскорблениями, ок?

Что лучше - коды возврата или исключения, достаточно спорный вопрос. Особенно в языках без поддержки finally (привет, С++).
GC в С++ тоже нету.
А RAII неприменимо к упомянутому выше примеру.

#310
13:30, 15 мар 2012

Ogra
> Особенно в языках без поддержки finally
RAII. Вы кажется не знаете даже основ.

#311
13:39, 15 мар 2012

zlos
RAII отвечает за создание и удаление объектов, но не отвечает за их жизненный цикл. RAII не способен защитить объекты от перехода в нерабочее состояние. Конечно, если программа по каждому "чиху" выпадает в главное меню, то да - вы спасены. Но если вы пытаетесь написать программу, которая не падает, когда не требуется - одного RAII будет мало.

#312
13:45, 15 мар 2012

ах да, в СЯХ ко всему прочему ещё и нет finally

SAD

#313
13:47, 15 мар 2012

Ogra
> RAII не способен защитить объекты от перехода в нерабочее состояние.
Кидаем исключение, исключение летит, объекты сами убиваются при выходе за области видимости. Будьте добры уже пойти и выучить алфавит. Или не смешивайте исключения с кодами возврата, я за такое морду разбиваю например.

#314
13:50, 15 мар 2012

DevilDevil
> сменить "парадигму мышления" с навязанной тебе ограниченными возможностями С++
моя парадигма мышления называется KISS, почитай о ней в интернете

DevilDevil
> на распространённую "парадигму мышления", которой пользуются ОЧЕНЬ МНОГИЕ
> программисты
я считаю их нубами, ибо у свойств одно оправдание - срочный рефакторинг.

DevilDevil
> "свойство" и "поле" - это немного разные понятия
да, но я когда программирую уже знаю зачем создаю поле и зачем создаю геттер либо сеттер
поле геттер и сеттер к нему избыточны, поэтому не нужны.

Страницы: 120 21 22 2326 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.