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

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

31.10.2019, 23:35. Показов 13163. Ответов 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить сумму и количество положительных элементов массива, расположенных в четных строках. Решение: Создан документ с. . .
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru