Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
_amper
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 54
1

Почему вызывается конструктор, а не создание массива?

29.09.2016, 20:20. Просмотров 721. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct KTest
{
KTest(int _a, double _b, long long _c) : a(_a), b(_b), c(_c) {}
friend ostream& operator << (ostream& os, KTest const& tst)
{
os << tst.a << " " << tst.b << " " << tst.c;
return os;
}
 
int a;
double b;
long long c;
};
template <typename T>
В T передается KTest
queue это указатель типа T
int SIZE=10;
queue = new T[SIZE];
Почему тут создается не массив с элементами типа KTest, а вызывается конструктор структуры?( т.е. ошибка вылетает:"KTest: нет подходящего конструктора по умолчанию")
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2016, 20:20
Ответы с готовыми решениями:

Почему не вызывается конструктор перемещения?
#include &lt;iostream&gt; #include &lt;vector&gt; class Object { public: Object() ...

Почему не вызывается конструктор копирования?
...У меня в книге описаны случаи при которых вызывается конструктор...

Почему не вызывается конструктор копии?
Почему не вызывается конструктор копии? class CPoint { friend...

Почему конструктор вызывается повторно при преобразовании типов?
В качестве примера предлагаю рассмотреть примерчик из учебника. В примере мы...

Почему при помещении объекта в list вызывается конструктор и деструктор?
Нужна помощь опытного программиста. Не могу понять почему при помещение объекта...

4
DrOffset
8460 / 4738 / 1160
Регистрация: 30.01.2014
Сообщений: 7,722
29.09.2016, 20:22 2
Лучший ответ Сообщение было отмечено _amper как решение

Решение

Цитата Сообщение от _amper Посмотреть сообщение
Почему тут создается не массив с элементами типа KTest, а вызывается конструктор структуры?
Он честно пытается. Создание массива объектов класса сопровождается вызовом конструктора для каждого элемента.
Но ты не предоставил подходящего конструктора. Поэтому так.
Устраняй логическое противоречие в своем коде и все наладится
1
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,470
29.09.2016, 20:23 3
Ну ты же структуру в шаблон вставляешь.
0
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
29.09.2016, 20:23 4
Потому что вы создаете SIZE элементов через default конструктор? KTest(int _a, double _b, long long _c) где вы указали для КАЖДОГО из SIZE элементов его аргументы a, b, c ???
0
_amper
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 54
29.09.2016, 20:31  [ТС] 5
спасибо Теперь понятно.
0
29.09.2016, 20:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2016, 20:31

Почему конструктор вызывается при присвоении объекта другому объекту
оператор+ выполняется нормально, но когда уже переменная в sum, на след шаге...

Почему не вызывается ни конструктор копий, ни функция перегруженного оператора присвоения
Привет. Начал изучать C++, дошел до темы перегрузки операторов. И запарился на...

Почему не вызывается конструктор копирования при возврате объекта из функции
Добрый день! Насколько мне известно, конструктор копирования вызывается:...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru