0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
||||||
1 | ||||||
Компилятор QT работает неадекватно ?!30.10.2013, 13:03. Показов 1200. Ответов 13
Метки нет (Все метки)
Доброго времени суток!
Задача простая. Есть класс String предназначенный для хранения строк. Недостаток этого класса в том, что он не контролирует выход за пределы поля str. Для искоренения этого недостатка создан класс Pstring. Должна выполняться проверка размера вводимой строки, перед записью этой строки в поле str. Но в строке 36 компилятор переходит к выполнению конструктора без параметров класса предшественника ( стр. 15), вместо того чтобы вызвать конструктор с одним параметром ( стр. 18). Хотелось бы понять причину
0
|
30.10.2013, 13:03 | |
Ответы с готовыми решениями:
13
Программа работает неадекватно С++ Через sublime text 3 и компилятор g++ работает, посоветовали скачать VS, не работает. Миниатюры Почему не работает компилятор Как работает компилятор С++ |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
30.10.2013, 13:06 | 2 |
Corvit, Потому что так нельзя по стандарту.
Что делает строчка String(s)? Вызывает конструктор класса String с параметром s, однако объект уже создан в списке инициализации, следовательно для него не будет вызван конструктор.
0
|
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
|||||||||||
30.10.2013, 13:52 [ТС] | 4 | ||||||||||
castaway
0
|
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
||||||
30.10.2013, 14:04 [ТС] | 6 | |||||
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
30.10.2013, 14:07 | 7 | |||||
Corvit, Если код такой:
0
|
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
||||||
30.10.2013, 14:09 [ТС] | 8 | |||||
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
30.10.2013, 14:31 | 9 | ||||||||||
Про то что вызова конструктор в функции не будет - это я конечно погорячился. Вызов будет, но он создаст временный объект, который тут же уничтожится. Почему вызывается конструктор без параметров пробую понять.
Насколько я понимаю, компилятор оптимизирует и имеет на это полное право, потому как результат вызова данного конструктора никак не используется. Оптимизация глушится либо
1
|
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
|
30.10.2013, 14:49 [ТС] | 10 |
Спасибо за разъяснение
0
|
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
|||||||||||
01.11.2013, 09:57 [ТС] | 12 | ||||||||||
Переписал немного код
castaway ForEveR Получается, что единственный способ использовать конструктор:
Добавлено через 18 часов 10 минут Люди
0
|
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 13
|
|
01.11.2013, 10:12 [ТС] | 14 |
0
|
01.11.2013, 10:12 | |
01.11.2013, 10:12 | |
Помогаю со студенческими работами здесь
14
Не работает ни один компилятор! Не понятно почему не работает компилятор DevC++ Как работает компилятор при создании объекта В какой программе компилятор работает со станадартным (ANSI/ISO) C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |