Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/65: Рейтинг темы: голосов - 65, средняя оценка - 4.78
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238

Что возвращает конструктор?

31.10.2019, 23:35. Показов 13336. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что возвращает конструктор?
Читал что если написать myclass() ; (myclass это созданный класс), то создаётся безымянный объект, но как-то странно звучит, если это правда можно подробнее?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2019, 23:35
Ответы с готовыми решениями:

Что возвращает конструктор?
Здравствуйте! Я не могу понять, как происходит присвоение вот здесь: object obj = object(10) object - класс, написанный программистом....

Конструктор Shader() возвращает null
Камрады, разве следующий код должен вернуть null ? (Unity 5.6) Shader sh = new Shader();

Определить конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, деструктор
Создать класс «матрица». Данный класс должен содержать элементы типа int, определяющие число строк, столбцов и состояние ошибки. Определить...

69
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
02.11.2019, 19:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Это говорит лишь о том, что агрегатная инициализация, которая выполнялась в исходном варианте кода, порождала точно такой же код, как и ваш вариант с вашим явным конструктором. Поэтому ничего и не изменилось.
Это как раз тот случай, когда черепахи летают но очень низко и очень медленно.
TheCalligrapher, для меня "не имеет отношения " в формулbровке "совершенно" имеет значение лишь если, например, "компилятор не должен генерировать кода конструктора" если нет явного определения и делается uniform инициализация. Если он может генерить или может не генерить, это уже нюансы. Так можно договориться об обсуждении вероятности той или иной оптимизации.
Вот кстати, - дочитал до этого места.
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
К тому же вы написали тривиальный код, который любой оптимизирующий компилятор "усушит" до до одного и того же необходимого минимума, вне зависимости от абстрактных требований языка.
***
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
У вас наблюдаются какие-то странные ожидания того, что чисто концептуальные различия в поведении кода выльются в разный сгенерированный код. С чего бы это вдруг?
Думаете странные? Я не вижу странного. Вашу точку зрения я понял. Если не верить написанному, то чему же верить? Это вполне нормальная позиция. Видите? Я не категоричен и не оцениваю степень нормальности желаний оппонента. Видимо сказывается разность широт. Вашу точку зрения я понял. Спасибо)
0
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
02.11.2019, 21:10  [ТС]
TheCalligrapher, извините, до сегодняшнего дня я почему-то думал что конструкторы каким-то образом создают объекты, а не инициализируют их, в этом и была проблема того что я не мог понять как объект создаётся без конструктора, но я понял что конструкторы нужны для инициализации полей данных объекта.
0
Evg
02.11.2019, 21:14

Не по теме:

Цитата Сообщение от Vanconts Посмотреть сообщение
до сегодняшнего дня я почему-то думал что конструкторы каким-то образом создают объекты
А я уже в посте #15 про это написал...

0
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
02.11.2019, 21:30  [ТС]
Evg, выходит если в классе нету полей то конустpуктоp там и не нужен?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
03.11.2019, 00:23
Логически - не нужно. Но никто не запрещает его написать и воткнуть туда, например, печать на экран. Компилятор будет строить вызов конструктора независимо от того, есть там поля, или нет. TheCalligrapher столько всего разжевал, ты из принципа что ли не читаешь?
0
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
03.11.2019, 00:46  [ТС]
Evg, просто до той статьи про инициализацию я мало чего понимал с того что он писал
0
03.11.2019, 00:47

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение
ты из принципа что ли не читаешь?
Я читал с ожиданием "не понимаешь" в конце. :D

0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
03.11.2019, 02:35
Цитата Сообщение от Vanconts Посмотреть сообщение
выходит если в классе нету полей то конустpуктоp там и не нужен?
Нужен или нет - вопрос субъекта желающего или нет что бы он был. Суслик есть независимо от того видим ли мы его. Например, если не определить явно ни одного конструктора, то компилятор предоставит соответствующий код. В этом случае, говорят что конструктор есть. Его вызов можно написать и он будет скомпилирован.
C++
1
2
3
4
5
6
7
8
struct TestHaveCtorOrNot
{
  void foo(){cout<<"\nfoooo!\n";}
};
 
int main()
{
    TestHaveCtorOrNot().foo();//foooo! - вызов метода на временном анонимном объекте
Как видите, несмотря на то, что в С++ нет явного вызова конструктора, но он есть. Хотя говорят что его нет. В этом суть евангелистсткого подхода к действительности. Оно выглядит как вызов, работает как вызов ... но в евангелие говорится, что это не вызов. Стало быть его нет. Это официальная точка зрения. Так же дело обстоит и в случае с присутствием не только явного вызова, а его самого конструктора как такового. Атеисты веруют что ЕГО нет. Но не могут доказать. А верующим не нужно доказательство как таковое. Есть текст и он свят и в нём всё сказано.
Vanconts, то что я говорю ни как не связано с реальностью вообще и тем что есть или чего нет, в частности. Это сарказм.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
03.11.2019, 12:39
Цитата Сообщение от Vanconts Посмотреть сообщение
Evg, просто до той статьи про инициализацию я мало чего понимал с того что он писал
Я не понимаю, что такое "до той статьи", но фраза подразумевает, что начиная с какого-то момента ты начал понимать больше. Ну так не поленись и прочти с нуля всю тему. Если ты считаешь, что тебе всю жизнь кто-то всё будет разжёвывать и ещё пальцем пропихивать, чтобы легче проглотилось, то это не так
1
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
03.11.2019, 14:56  [ТС]
Evg, "та статья" - пост на хабре который мне кинули в обсуждениях этой темы раньше
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2019, 14:56

Что можно сделать, что бы конструктор вызывался один раз при агрегировании?
Добрый день. Написал код, но два раза подряд вызывается конструктор, так как создаю объект в другом классе.. Что можно сделать, что бы...

Определить, что за параметр передается функции и что она возвращает
Добрый день! помогите пожалуста понять что за параметр передается функции LS_GetReaderSn и что эта функция возвращает. ...

Что означает запись в скобках и что возвращает return
Всем привет! Начал читать книгу BecomeAnXcoder и тут появился вопрос. В пример приведен такой код circleArea(float theRadius) //(1) ...

Что тут метод, а что конструктор?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApp77 { class...

Что делает конструктор?
Я очень плохо понял вобще. Он вроде помогает создать в памяти место для переменных обьявленых в классе?? В каких слуаях его лучше...


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

Или воспользуйтесь поиском по форуму:
70
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru