Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
Заблокирован

Почему в С++ это сделано именно так? Объяснение для НЕ программиста

22.04.2017, 11:51. Показов 9234. Ответов 72
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой теме хотелось бы задавать "тупые" вопросы по С++ и получить ответы и объяснения на нормальном человеческом языке, понятном НЕ программисту.

Т.е. без "птичьего языка", программистского сленга/жаргона и т.п.
А на понятном любому НЕ программисту языке.

Вопрос №1. Зачем расширили синтаксис инициализации в С++? Я о "скобочной форме" инициализации.

Добавлено через 2 минуты
Приведите примеры, где без этой скобочной формы инициализации просто никак.
Я имею в виду не потому что этого требует синтаксис, а про реальную пользу
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2017, 11:51
Ответы с готовыми решениями:

Почему именно так ?!
Используйте функции fft и ifft в Mathcad, если выполнены следующие два условия: аргументы вещественны, и вектор данных имеет 2^m...

Почему именно так правильно?
Все данные текстовые. Первый вопрос. Вариант 1 while (temporari==0) // ищем номер столбца с нужным кодом, если доходим до 0 в...

Почему функция работает именно так?
Доброго времени суток! Помогите разобраться с кодом пожалуйста У меня есть фигурка которая крутится на экране. Есть функция которая...

72
22.04.2017, 19:38
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Чтобы вместе с кодом и форматированием?
https://www.cyberforum.ru/abou... st10201510
Но не злоупотребляйте этим.
Избыточное цитирование запрещено правилами.

0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
22.04.2017, 19:42
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Но зачем такая форма нужна для переменных БАЗОВЫХ/ВСТРОЕННЫХ/АТОМАРНЫХ типов?
1.
единый дизайн для всех типов без искл.

2.
единая работа с любыми типами при написании шаблонов.

Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Тем не менее во всех учебниках пишут про способ инициализации путем создания временного безымянного объекта с последующим его копированием
назовите хотябы один такой учебник.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
22.04.2017, 19:48
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
IGPIGP, только не надо передёргивать и не надо пытаться СПЕЦИАЛЬНО замарачивать некоторые вещи, чтобы человек не мог в них разобраться а Вы бы потом (свысока) сказали: "не всем дано".
Я больше чем уверен, что программирование "ВСЕМ ДАНО".
И что даже любую кухарку можно научить вполне прилично кодить.
И я берусь это доказать.
Я вас вспомнил. Отписываюсь.
1
Заблокирован
22.04.2017, 20:10  [ТС]

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Но не злоупотребляйте этим.
Избыточное цитирование запрещено правилами.
А как быть если я цитирую код, который мне написали?



Добавлено через 18 минут
Приведу цитату из книги (ссылку не дам так как тут забанивают за ссылки на внешние ресурсы - гуглом найдёте откуда это)
Конструкторы часто вызываются неявно для создания временных объектов. Обычно это происходит в следующих случаях:

при инициализации;
при выполнении операции присваивания;
для задания значений параметров по умолчанию;
при создании и инициализации массива;
при создании динамических объектов;
при передаче параметров в функцию и возврате результатов по значению.

Примеры:

monster Super(200, 300), Vasia(50);
monster X = monster(1000);

В последнем операторе создается объект Х, которому присваивается безымянный объект со значением параметра health = 1000 (значения остальных параметров устанавливаются по умолчанию).
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
22.04.2017, 20:30
ИсмаилПркопенко,
Почему при инициализации строки, сначала создаётся пустой объект?
Visual Studio - нормально, g++ - ошибка
0
Заблокирован
22.04.2017, 21:04  [ТС]
Croessmah, Т.е. нет НИКАКОЙ разницы написать my_class A(3,5); или my_class A = my_class(3,5);

Так?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
22.04.2017, 21:07
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Т.е. нет НИКАКОЙ разницы написать
Для фундаментальных типов разницы не будет.
Для классовых будет в некоторых случаях.
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.04.2017, 21:19
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Я больше чем уверен, что программирование "ВСЕМ ДАНО".
И что даже любую кухарку можно научить вполне прилично кодить.
Ключевое слово "кодить". Программирование разное бывает, как сказал кто-то: "есть программисты, а есть те, кто красит заборы". Я не сомневаюсь, что, пускай и с большими усилиями, можно научить кухарку писать фронтенд сайтов или даже бэкенд на каком-нибудь несложном фреймворке вроде django(код будет такой себе, но рабочий), но написать движок трёхмерной игры с простенькой физикой она вряд ли сможет.
0
Заблокирован
22.04.2017, 21:34  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Для классовых будет в некоторых случаях.
И в чем она?

Добавлено через 1 минуту
DevAlone, Я к тому, что многие тут так "объясняют", что складывается ощущение, что они не объяснить хотят, чтобы новичку было все понятно. А НАПРОТИВ. Специально его хотят заморочить и запутать, чтобы он пришел в отчаяние. И чтобы посмеяться над ним
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
22.04.2017, 21:35
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
И в чем она?
Практически в самом начале этой темы уже есть ответ на этот вопрос.
Вам как об стенку, так что не вижу смысла писать еще раз.
0
Заблокирован
22.04.2017, 21:39  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Практически в самом начале этой темы уже есть ответ на этот вопрос.
Вам как об стенку, так что не вижу смысла писать еще раз.
Плохой из Вас учитель.
Вы быстро раздражаетесь

Где "практически в начале"?
Начиная с какой страницы и с какого слова?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
22.04.2017, 21:40
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Плохой из Вас учитель.
Не Вам судить.
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Вы быстро раздражаетесь
Если человек не видит что ему пишут,
то смысла нет с ним беседовать.

Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Где "практически в начале"?
Начиная с какой страницы и с какого слова?
Вот. Всего один пост, который всё объясняет:
Цитата Сообщение от hoggy Посмотреть сообщение
но может быть критично для классов.
у них может оказаться запрещенным конструктор копии.
или не оказаться не explicit конструктора
1
Заблокирован
22.04.2017, 21:46  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
может быть критично для классов.
у них может оказаться запрещенным конструктор копии.
или не оказаться не explicit конструктора
Спасибо. Теперь понял, что Вы имели в виду.

Но так "осталось за кадром" А ЗАЧЕМ СОЗДАВАТЬ ТАКОЙ КЛАСС, в котором запрещен конструктор копирования? Какая от этого выгода?
Кстати как его запретить?
Сделать PRIVATE?
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.04.2017, 21:46
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
DevAlone, Я к тому, что многие тут так "объясняют", что складывается ощущение, что они не объяснить хотят, чтобы новичку было все понятно. А НАПРОТИВ. Специально его хотят заморочить и запутать, чтобы он пришел в отчаяние. И чтобы посмеяться над ним
Сначала нужно уяснить, что никто вам ничего не должен, это полезно не только на форуме, но и вообще по жизни А "чтоб посмеяться" обычно отвечают, когда приходит какой-нибудь студент, которому нужно завтра сдавать программу, а сам ничего ещё не сделал, и скидывает задание, часто они даже не трудятся переписать его, а скидывают фотку.
0
Заблокирован
22.04.2017, 21:48  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
или не оказаться не explicit конструктора
А если у меня типы фактических и формальных параметров совпадают?
То разве не наплевать explicit у меня конструкто или НЕ explicit?
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.04.2017, 21:49
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Но так "осталось за кадром" А ЗАЧЕМ СОЗДАВАТЬ ТАКОЙ КЛАСС, в котором запрещен конструктор копирования? Какая от этого выгода?
Например указатель unique_ptr, в нём запрещён, т.к. это такой указатель, который должен сам владеть своим объектом и нельзя чтобы кто-то "скопировал" его права владения.
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Кстати как его запретить?
Сделать PRIVATE?
раньше делали так, сейчас можно использовать конструкцию:
C++
1
ClassName(const ClassName&) = delete;
0
Заблокирован
22.04.2017, 21:50  [ТС]
DevAlone, по сабжу ответите? То бишь по С++.
Тут я вопросов уже с пару десятков накидал
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
22.04.2017, 21:52
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
DevAlone, по сабжу ответите? То бишь по С++.
Ответил
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Тут я вопросов уже с пару десятков накидал
Книжку б лучше одну прочитал, больше пользы было бы
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
22.04.2017, 21:52
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Но так "осталось за кадром" А ЗАЧЕМ СОЗДАВАТЬ ТАКОЙ КЛАСС, в котором запрещен конструктор копирования?
Очевидно - когда объект класса не должен копироваться.
Например, std::unique_ptr или стандартные stream-классы
имеют удаленный/запрещенный конструктор копирования.
Начиная с C++11, у них имеется перемещающий конструктор,
который может быть использован в copy-initialization.
0
Заблокирован
22.04.2017, 22:02  [ТС]
Цитата Сообщение от DevAlone Посмотреть сообщение
Например указатель unique_ptr, в нём запрещён, т.к. это такой указатель, который должен сам владеть своим объектом и нельзя чтобы кто-то "скопировал" его права владения.
Но тогда получается, что такой класс (ну в смысле объект данного класса - то же уже стал заговариваться и использовать программистский сленг) нельзя передавать как параметр функции?

Добавлено через 37 секунд
Цитата Сообщение от DevAlone Посмотреть сообщение
Книжку б лучше одну прочитал, больше пользы было бы
Я их прочитал с десяток. И только каша в голове от этого. Одни так пишут, другие эдак.

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
у них может оказаться запрещенным конструктор копии.
или не оказаться не explicit конструктора
А если есть и то и это. Или типы формальных и фактических параметров ПОЛНОСТЬЮ совпадают и вызов конструктора преобразования не нужен?
То есть ли разница в этих двух способах инициализации?
C++
1
2
my_class A(3,5);
my_class B = my_class(3,5);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2017, 22:02

ОВЕН и др. Почему именно так измеряют???
Разобрал на работе несколько разных термодатов в частности ОВЕН, ВАРТА и еще какой то. И у все измерение температуру идет следующим...

Объясните почему работает именно так?
Добрый день. Пишу приложение и пытаюсь в меню добавить обработку метода jMenuItem1MouseClicked (при выборе пункта меню окно должно...

Почему в примере инкремент вычитается именно так
Здравствуйте! int a = 10, b = 3; int t = (a++) - b; b += t * a; Console.WriteLine("{0} {1}", t, b); Почему результат...

Обращение к массиву структур, почему именно так?
Почему в не которых функциях к елементам структуры обращаются *invtry , а в других просто invtry? #include <stdafx.h> #include...

Groovy Почему ObjectMapper работает именно так
У меня есть класс типа JsonResponse в котором есть поле result типа Object. Этому полю присваиваются разнообразные значения, в зависимости...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru