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

Шаблон list и подставляемый класс

19.06.2010, 01:49. Показов 2952. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я использую шаблон list для временного хранения элементов своего класса. Проблема в том, что он ругается, мол нету конструктора копий. Но этот конструктор есть!!! Что делать?
ошибка
error C2558: struct 'MonitoredItem': нет доступных конструкторов копии или конструктор копии объявлен как 'explicit'


Вот описание моего класса на всякий случай:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
typedef unsigned int uint;
struct MonitoredItem
{
    uint id;
    char *url;
    uint urlsize;
    ClientConnection *connection;
 
    MonitoredItem();
    MonitoredItem(MonitoredItem &mi);
    ~MonitoredItem();
 
    void Set(uint i, char *u, uint s);
    void Clear();
    MonitoredItem& operator = (MonitoredItem &mi);
};
 
MonitoredItem::MonitoredItem() {id = 0; url = NULL; urlsize = 0;};
 
MonitoredItem::MonitoredItem(MonitoredItem &mi)
{
    id = mi.id;
    urlsize = mi.urlsize;
    url = new char [urlsize];
    memcpy(url, mi.url, urlsize);
    connection = mi.connection;
};
 
MonitoredItem& MonitoredItem::operator = (MonitoredItem &mi)
{
    if (url) delete [] url;
    if (connection) delete connection;
    MonitoredItem tmp(mi);
    id = tmp.id;
    urlsize = tmp.urlsize;
    url = new char[urlsize];
    strncpy(url, tmp.url, urlsize);
};
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2010, 01:49
Ответы с готовыми решениями:

Класс-шаблон list
Хаюшки всем умным людям:) Есть такое задание: Создать класс-шаблон List для работы со списком на основе массива. Реализовать...

Создать класс Элемент списка (Node), а затем класс Список (List)
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

Подставляемый код
Привет всем. Читал, что компилятор по своему усмотрению может сделать код функции подставляемой. Меня интересует сохраняется ли это правило...

8
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 58
19.06.2010, 01:54
почемуто мне кажеться что в struct можно хоронить только переменные зачем там функции не понятно
0
 Аватар для JamesBlack
46 / 46 / 5
Регистрация: 28.07.2009
Сообщений: 144
19.06.2010, 02:04  [ТС]
Suroviy, struct от class в C++ отличается только одним: в class без меток (public, private, protected) все члены и методы по умолчанию private, а в struct - public. Какбэ, других различий нет, и юзать их можно абсолютно аналогично. Методы - в том числе.
0
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 58
19.06.2010, 02:05
понял тебя, не когда не задумывался об этом.
0
 Аватар для JamesBlack
46 / 46 / 5
Регистрация: 28.07.2009
Сообщений: 144
19.06.2010, 02:08  [ТС]
Suroviy, только изза этого различия, чаще всего юзают структуры там, где данные прятать не надобно. Ну и чисто по привычке - для небольших классов. А классы - с прайвейт член-данными, и когда это достаточно сложный объект с кучей методов.

Во всяком случае, так я и несколько моих друзей так делают.
1
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
19.06.2010, 02:11
C++
1
2
3
4
5
6
7
8
9
10
MonitoredItem& MonitoredItem::operator = (MonitoredItem &mi)
{
        if (url) delete [] url;
        if (connection) delete connection;
        MonitoredItem tmp(mi);
        id = tmp.id;
        urlsize = tmp.urlsize;
        url = new char[urlsize];
        strncpy(url, tmp.url, urlsize);
};
где return? и что есть ClientConnection?
1
 Аватар для JamesBlack
46 / 46 / 5
Регистрация: 28.07.2009
Сообщений: 144
19.06.2010, 02:38  [ТС]
ААААА! Черт! ретурн забыл!!! Позор на мою голову!!!

А КлайнтКоннекшн - это я юзаю библиотеку одного моего друга для сокетов. Оч удобная и протестенная, без багов.

Добавлено через 11 минут
Но вообще, проблема не решена. То я исправил в операторе. А конструктор и не тронут и ошибка никуды не пропала.
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
19.06.2010, 03:38
Так на заметку...
MonitoredItem(const MonitoredItem &mi);
MonitoredItem& operator = (const MonitoredItem &mi);
1
 Аватар для JamesBlack
46 / 46 / 5
Регистрация: 28.07.2009
Сообщений: 144
19.06.2010, 03:39  [ТС]
Проблема решена, детская ошибка =)

Сишник не считал мой метод конструктором копии, ибо свято верил, что в конструктор копии должна передаваться константная ссылка =)

Добавлено через 22 секунды
ISergey, минут 10 назад осознал, но все равно спасибо =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2010, 03:39
Помогаю со студенческими работами здесь

"LinkedList": для использования класс шаблон требуется список аргументов шаблон
Что то не могу въехать в чем промах? LinkedList.h #pragma once #include <iostream> #include <string> template<typename...

Описать шаблон класса List
Помогите лузеру сделать прогу. Описать шаблон класса List, который определяет однозвьязний список для элементов любого типа. Написать...

Ошибка при компиляции:"C2955 "Tree": для использования класс шаблон требуется список аргументов шаблон"
Есть класс бинарного дерева, в нем структура. Класс - Tree, структура - list(листик, а не список). При компиляции выдает...

Шаблон System.Collections.Generic.List со своим классом в качестве параметра
При добавлении методом .Add контейнера List, если в качестве класса у шаблона использовать стандартный класс string - добавляется строка с...

Класс List
Мне нужна помощь при выполнение задания на списки... 1. Существует класс DList (Doulby LinkedList ) Dlist { Object info; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru