1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
||||||||||||||||
1 | ||||||||||||||||
Класс-шаблон создание конструктора по умолчанию11.04.2015, 18:05. Показов 5595. Ответов 21
Метки нет (Все метки)
Хочу создать класс-шаблон. Начал с создания конструктора по умолчанию, с этого же момента и началась проблема, причём такая, что смысл её даже не понятен)))
Почему-то не создаёт Elements <int> A; В чём может быть проблема? С меня "спасибо" и "лучший ответ" за правильно данный ответ. Вот код программы:
0
|
11.04.2015, 18:05 | |
Ответы с готовыми решениями:
21
Класс содержит более одного конструктора по умолчанию Класс содержит более одного конструктора по умолчанию Создание лог файла. Нет подходящего конструктора по умолчанию Буст сериализация. указатель на абстрактный базовый класс без конструктора по умолчанию |
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
11.04.2015, 18:08 | 2 |
BabaSveta, в данном случае, определение конструктора (и других public функций) должно быть в .h ,а не в .cpp
1
|
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|
11.04.2015, 18:10 | 3 |
BabaSveta, реализацию конструктора, как и остальных методов шаблона, надо перенести в h-файл. Соль в том, что шаблон должен быть доступен в точке использования полностью, чтобы компилятор смог сгенерировать по нему конкретную реализацию.
0
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
|||||||||||
11.04.2015, 18:43 [ТС] | 4 | ||||||||||
перенёс, всё равно ошибка..
0
|
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|
11.04.2015, 18:48 | 5 |
Сообщение было отмечено BabaSveta как решение
Решение
1
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
|||||||||||
11.04.2015, 18:56 [ТС] | 6 | ||||||||||
перенёс абсолютно все, и даже удалил файл Elements.cpp, но всё равно возникает ошибка..
0
|
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
||||||
11.04.2015, 19:04 | 7 | |||||
Что-то ты мудришь. В приведенном фрагменте не видно ни реализации конструктора, ни остальных методов. Как ты мог их перенести, если их нет? Естественно он их не находит при компоновке.
0
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
|
11.04.2015, 19:06 [ТС] | 8 |
всё, решилось! Спасибо!))) Сейчас проставлю вам "Спасибо"!
0
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
|||||||||||
11.04.2015, 20:57 [ТС] | 9 | ||||||||||
При добавлении элемента с помощью метода Add выводит ошибку, смысл её понять не могу, уже менял тип принимаемых значений и тип класса, всё равно одно и то же...
0
|
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|
11.04.2015, 21:11 | 10 |
0
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
||||||
12.04.2015, 16:23 [ТС] | 11 | |||||
кажется не так прописываю оператор присваивания. Где именно ошибка?
Почему не могу обратиться, не понимаю..
0
|
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|||||||||||
12.04.2015, 16:30 | 12 | ||||||||||
Сообщение было отмечено BabaSveta как решение
Решение
BabaSveta, Банальная невнимательность.
В классе (забыл const у параметра, возвращать надо ссылку):
1
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
|
12.04.2015, 16:52 [ТС] | 13 |
Спасибо! Фиг поймёшь где его ставить
0
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
||||||
13.04.2015, 14:31 [ТС] | 14 | |||||
При копировании атрибута name в операторе присваивания возникает такая ошибка
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
13.04.2015, 14:36 | 15 |
0
|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
|
|||||||||||
13.04.2015, 14:45 [ТС] | 16 | ||||||||||
но в конструкторе по умолчанию и в явном конструкторе я её выделял... Ещё раз выделять? Что-то тогда ничего не могу понять....
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||||||
13.04.2015, 14:59 | 17 | |||||
Сообщение было отмечено BabaSveta как решение
Решение
угу Выделили, а потому указатель поменяли на указатель в памяти под константный строковый литерал
хотя бы так сделайте
1
|
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
|
|
13.04.2015, 15:24 | 18 |
Кстати, вот эта запись в каждом конструкторе бессмысленна в данном контексте. Ты определяешь локальный массив, который уничтожится по выходу из конструктора. И что это дает? Ничего.
1
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
13.04.2015, 15:34 | 19 |
DrOffset, ну так то по идее при присваивании надо name удалять(потому что даже в деф.констркуторе выделяется память), косяком много...
0
|
DrOffset
|
13.04.2015, 15:42
Класс-шаблон создание конструктора по умолчанию
#20
|
0
|
13.04.2015, 15:42 | |
Реализация конструктора по умолчанию Генерация конструктора по умолчанию Параметры конструктора по умолчанию Инициализация конструктора по умолчанию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |