The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Утверждён стандарт C++20, opennews (?), 07-Сен-20, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


76. "Утверждён стандарт C++20"  +2 +/
Сообщение от Анонимчик (?), 07-Сен-20, 12:09 
до сих пор стараюсь не писать на с++ из-за отсутствии такой важной возможности
Ответить | Правка | Наверх | Cообщить модератору

137. "Утверждён стандарт C++20"  +1 +/
Сообщение от Аноним5487547 (?), 07-Сен-20, 15:19 
Увы, но заменить c++ нечем. Если те же задачи решать на C то запутанность кода превысит запутанность синтаксиса современного c++
Ответить | Правка | Наверх | Cообщить модератору

180. "Утверждён стандарт C++20"  +1 +/
Сообщение от Lex (??), 07-Сен-20, 19:21 
Если на сях писать аки на плюсах - тогда да.

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

Ответить | Правка | Наверх | Cообщить модератору

193. "Утверждён стандарт C++20"  +/
Сообщение от Аноним5487547 (?), 07-Сен-20, 20:23 
Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная операция над объектом:
//в C++
obj.func(arg1, arg2);
//в C
objType_func(ptr_to_obg, arg1, arg2);
Ответить | Правка | Наверх | Cообщить модератору

238. "Утверждён стандарт C++20"  +1 +/
Сообщение от draw1 (?), 08-Сен-20, 04:06 
> Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная
> операция над объектом:
> //в C++
> obj.func(arg1, arg2);
> //в C
> objType_func(ptr_to_obg, arg1, arg2);

Написать короче, да. Выглядит красивей.
Вот только читая такой код ты сначала должен посмотреть что такое obj, просмотреть иерархию наследования, посмотреть все вариации func со всеми типами аргументов, посмотреть какой тип у аргументов, пройти по их иерархии наследования, попарить мозг если это какой-нибудь шаблон хитровывернутый ...и это только для того чтоб точно понять с чем именно идёт работа в данном конкретном месте - то есть это только подготовительный этап к чтению содержимого.

В Си-шном варианте, хоть и более многословном, но по прототипу функции уже сразу понятно на что надо смотреть. Да, писать больше, а с вариациями аргументов и структур - намного больше (но это ж как раз про дизайн, чтоб с самого начала не плодить лишнего "just because we can").

Более классический пример:

y = x + 5;

В Си-шном коде можно вообще никуда не смотреть - сразу понятно, в целом, что происходит.
Эта же строчка на плюсах может быть вообще чем угодно (хорошо хоть пятёрка пока не может быть переопределена). Для написания - это может быть большим достоинством (краткость, единообразие, красивость и всё такое), но для чтения/понимания...

Ответить | Правка | Наверх | Cообщить модератору

322. "Утверждён стандарт C++20"  +/
Сообщение от Аноним5487547 (?), 09-Сен-20, 12:59 
Это если первый заглянул в код тогда да. Но поработав какое-то время с проектом и познакомившись со всей иерархией классов, получаешь буст к скорости написания/понимания именно благодаря лаконичности и естественности ООП кода.
Ответить | Правка | Наверх | Cообщить модератору

251. "Утверждён стандарт C++20"  +/
Сообщение от Lex (??), 08-Сен-20, 08:23 

>> Если на сях писать аки на плюсах - тогда да.
>> Если же кодить нормально, без этих бесконечных нагромождений псевдоабстракций...
> Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная
> операция над объектом:
> //в C++
> obj.func(arg1, arg2);
> //в C
> objType_func(ptr_to_obg, arg1, arg2);

Это ведь именно попытка писания на Сях аки на плюсах, т.е к нагромождению ООП и связанных с ним тонн абстракций добавляется еще и попытка "эмуляции" ООП на языке, его не поддерживающем.
Конкретно в вашем примере - работа с объектом в ООП-стиле, на языке, который его поддерживает и на языке, котором добавляется еще один слой абстракций чисто для эмуляции ООП или к слову о прокидывании в функцию подобия this..
Само-собой подобный подход вдвойне убог.

Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

323. "Утверждён стандарт C++20"  +/
Сообщение от Аноним5487547 (?), 09-Сен-20, 12:59 
> попытка "эмуляции" ООП на языке, его не поддерживающем.

так ведь именно это и есть стиль типичного C фреймворка. Вот пример из GTK:
void gtk_window_set_default_geometry (GtkWindow *window, gint width, gint height);

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру