Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Просит конструктор структуры

14.01.2015, 11:20. Показов 1924. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
error: use of deleted function 'TModel::SaveToFile(HWND, bool)::TFileHeader::TFileHeader()'|
на строку
C++
1
TFileHeader     FileHeader;
при
C++
1
2
3
4
struct TFileHeader
{
 ...
};
.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2015, 11:20
Ответы с готовыми решениями:

Конструктор структуры
Необходимо заполнить структуру : struct filmoteka { string name; string dir; int time; string genre; }; не стандартным...

Конструктор структуры
Задание: сравнить строки функцией strcmp. Ошибка: error: cannot convert ‘String’ to ‘const char*’ for argument ‘2’ to ‘int strcmp(const...

Копировать пустую строку в const char* Конструктор структуры (класса)
Я думал, что это копирует в ch символ конца строки char *ch=new char; strcpy(ch,""); delete ch; В обычном случае оно так и...

21
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
14.01.2015, 17:21
По приведенному фрагменту кода невозможно назвать причину, по которой дефолтный конструктор удален.
Почему это может быть перечислено тут http://en.cppreference.com/w/c... onstructor в части "Deleted implicitly-declared default constructor".
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.01.2015, 17:25
А не может быть так что конфликт имен?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
14.01.2015, 17:28
А вызов
C++
1
std::cout << std::boolalpha << std::is_default_constructible<TFileHeader>::value;
даёт false?
Наверняка определён какой-либо конструктор, что не даёт компилятору сгенерить дефолтный.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 08:39  [ТС]
Вообще нет конструкторов. Это структура.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 08:44
Цитата Сообщение от taras atavin Посмотреть сообщение
Вообще нет конструкторов. Это структура.
С++? Значит, при отсутствии явно определенных конструкторов может быть сгенерирован конструктор по умолчанию. Иногда это сделать невозможно. В данном случае компилятор прямым текстом сообщает, что конструктор по умолчанию удален. Почему так может быть — написано по ссылке во втором посте.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 08:55  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Иногда это сделать невозможно.
Почему? Явных нет вообще, ничего не заделичено.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 08:57
Цитата Сообщение от taras atavin Посмотреть сообщение
Почему?
Третий раз говорю — по ссылке семь пунктов с ответом на этот вопрос.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 08:59  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Третий раз говорю — по ссылке семь пунктов
1) Declaration of a default constructor
2) Definition of the constructor outside the class body
3) Inhibiting the automatic generation of a default constructor
4) Explicitly forcing the automatic generation of a default constructor
Где ещё три?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 09:00
Цитата Сообщение от taras atavin Посмотреть сообщение
Где ещё три?
Цитирую себя же:
Цитата Сообщение от 0x10 Посмотреть сообщение
в части "Deleted implicitly-declared default constructor".
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 09:17  [ТС]
T has a member of reference type without a brace-or-equal initializer.
Что это значит?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 09:19
Цитата Сообщение от taras atavin Посмотреть сообщение
Что это значит?
В классе есть неинициализированная ссылка. Пример:
C++
1
2
3
struct T {
  int& value;
};
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 09:22  [ТС]
Нет такого.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 struct TFileHeader
 {
  unsigned char        FormatMarker              [11]={0x32, 0x16, 0xCE, 0x45, 0x95, 0x97, 0xCB, 0xD0, 0xF4, 0x98, 0x0E};
  uint8_t              VersioanNumberPrefix          =0x00;
  uint8_t              VersioanNumberCode            =0x00;
  uint64_t             Size                          =sizeof(TFileHeader)*8;
  uint64_t             SizePostfix                   =0x0706050403020100;
  uint64_t             FieldsFormatsByteOrder        =0x0706050403020100;
  uint64_t             FormatsCount                  =5;
  uint64_t             IntegerFormatsCount           =4;
  uint64_t             DoubleFormatsCount            =1;
  TFieldFormatMarker64 FieldFormatMarker64;
  TFieldFormatMarker32 FieldFormatMarker32;
  TFieldFormatMarker16 FieldFormatMarker16;
  TFieldFormatMarker8  FieldFormatMarker8;
  TDoubleFormatMarker  DoubleFormatMarker;
  unsigned char        Dimensions                [2 ]={'3','D'};
  uint64_t             PictureHeaderOffset;
 };
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 09:27
См классы TFieldFormatMarker*, TDoubleFormatMarker — в них есть дефолтные конструкторы?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 09:40  [ТС]
Филеды - это структуры. А TDoubleFormatMarker - класс с тремя конструкторами: по умолчанию, копирующим и перемещающим. Имеет члены двух классов, те классы еще не готовы.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 09:44
Цитата Сообщение от taras atavin Посмотреть сообщение
Филеды - это структуры.
Вопрос про наличие конструктора по умолчанию это не отменяет. Он должен быть: явный или неявный.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 10:47  [ТС]
В филедах нет явных конструторов и ничего не заделичено.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 10:50
В общем, для честного воспроизведения рексестирую полные определения TFieldFormatMarker* и TDoubleFormatMarker со всеми зависимостями.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.01.2015, 11:04  [ТС]
В филедах нет явных конструкторов и ничего не заделичено. В TDoubleFormatMarker конструкторов три: по умолчанию, копирующий и перемещающий.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 struct TFieldFormatMarker64
 {
  uint64_t Size =64;
  uint64_t Order=0x0706050403020100;
 };
 struct TFieldFormatMarker32
 {
  uint64_t Size =32;
  uint32_t Order=0x03020100;
 };
 struct TFieldFormatMarker16
 {
  uint64_t Size =16;
  uint16_t Order=0x0100;
 };
 struct TFieldFormatMarker8
 {
  uint64_t Size=8;
 };
,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class TDoubleFormatMarker
{
 private:
  uint64_t                                    Size;
  uint64_t                                    Order;
  uint64_t                                    Base;
  TDoubleMantissFormatMarker                  MantissFormatMarker;
  TDoubleExponentFormatMarker                 ExponentFormatMarker;
  bool                                        SupportedDenormalize;
  bool                                        SupportedSpecial;
  uint64_t                                    DenormalizeCodeMask;
  uint64_t                                    DenormalizeCode;
  uint64_t                                    SpecialCodeMask;
  uint64_t                                    SpecialCode;
                                              TDoubleFormatMarker                                   (                                                       );
                                              TDoubleFormatMarker                                   (const TDoubleFormatMarker          &Original           );
                                              TDoubleFormatMarker                                   (      TDoubleFormatMarker         &&Moving             );
                                             ~TDoubleFormatMarker                                   (                                                       );
          TDoubleFormatMarker                &operator =                                            (const TDoubleFormatMarker          &Original           );
          TDoubleFormatMarker                &operator =                                            (      TDoubleFormatMarker         &&Moving             );
          void                                CorrectDouble                                         (      double                       &Correcting         );
                                              operator bool                                         (                                                       );
};
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2015, 11:14
Лучший ответ Сообщение было отмечено taras atavin как решение

Решение

taras atavin, конструкторы TDoubleFormatMarker приватные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2015, 11:14
Помогаю со студенческими работами здесь

Передать ScrollBox в конструктор структуры
Есть небольшая структура, в которой конструктор в качестве аргумента принимает ScrollBox TStructBufferFrame(TScrollBox *parent) ...

Программа противоречит сама себе. Сначала просит поставить точку с запятой, потом просит ее же убрать
var input, output:text; k,s:string; c,q,i,x:integer; n:char; begin assign(input,'input1.txt'); reset(input); assign...

Как создать конструктор для структуры со структурой?
struct Student { string name,lastName; struct Date { int year; int month; ...

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

Для структуры "Дата" реализовать конструктор по умолчанию, выводящий текущую дату
Преподаватель дал задние,чтобы в структуре Date был конструктор по умолчанию.который выводит текущую дату.сказал что для этого туда надо...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru