0 / 0 / 1
Регистрация: 05.09.2014
Сообщений: 94
|
||||||
1 | ||||||
Что за ошибка при вызове конструктора?16.04.2015, 03:31. Показов 1527. Ответов 8
Метки нет (Все метки)
Компилятор ругается на строчку внутри цикла
конструктор класса Sym: Sum(unsigned char cc); Ругается следующим образом: error: no match for 'operator=' in 'q = (((Sym*)operator new(12u)), (<anonymous>->Sym::Sym(((int)((unsigned char)c))), <anonymous>))' compilation terminated due to -Wfatal-errors. Я так понимаю что что-то с типами, но никак не могу понять как исправить! Спасибо!
0
|
16.04.2015, 03:31 | |
Ответы с готовыми решениями:
8
Ошибка при вызове конструктора с параметрами Зачем двоеточие при вызове конструктора? Крашится приложение при вызове конструктора При вызове конструктора ошибка: L "Buffer is too small" & & 0 |
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
||||||
16.04.2015, 07:18 | 2 | |||||
с должна быть unsigned char
0
|
0 / 0 / 1
Регистрация: 05.09.2014
Сообщений: 94
|
|||||||||||
16.04.2015, 07:55 [ТС] | 4 | ||||||||||
Получилось исправить. Решение было для меня неожиданным: была записано
Когда написал:
Но почему так нельзя объявлять я так и не понял...
0
|
6 / 6 / 5
Регистрация: 05.04.2015
Сообщений: 25
|
|
16.04.2015, 08:19 | 5 |
Потому- что компилятор не знал как себя вести с твоим классом, тебе надо было перегрузить оператор "=" что бы так записать.
0
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
||||||
16.04.2015, 08:43 | 6 | |||||
Сообщение было отмечено Ilot как решение
Решение
Звездочка относится к имени переменной.
Первым ты определил указатель, а вторым - уже объект. Чтобы сработало в первоначальной записи, нужно было так:
Не по теме:
1
|
16.04.2015, 08:59 | 7 | ||||||
Не правда. DrOffset все верно указал.
А от себя добавлю - всегда обяъвляйте переменные в новой строке. Это очень важно. Первая причина этого то что указанно в этой теме. Еще одна это порядок конструирования переменных членов класса. DrOffset, последний комментарий нужно писать не как оффтоп, а большими жирными буквами, что бы всем было понятно. Например так:
0
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
|
16.04.2015, 09:03 | 8 |
Нет, ну если q - это самописный смартпойнтер, а автор забыл сделать ему operator=, то и этот ответ будет верным. Но т.к. автор не конкретизировал что такое q в первом посте, оставалось только гадать что же происходит
0
|
0 / 0 / 1
Регистрация: 05.09.2014
Сообщений: 94
|
|
16.04.2015, 09:44 [ТС] | 9 |
DrOffset, спасибо, теперь понял, действительно не правильно написал!
0
|
16.04.2015, 09:44 | |
16.04.2015, 09:44 | |
Помогаю со студенческими работами здесь
9
Ошибка при вызове конструктора (ДвоичныеДанные) Почему при вызове конструктора из конструктора нельзя передавать this как аргумент? Ошибка при вызове конструктора по причине:-2147221005(0x800401F3): Недопустимая строка с указанием класса Ошибка при вызове статического конструктора статического класса Ошибка "имена не существуют в текущем контексте" при вызове конструктора базового класса Access violation при вызове конструктора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |