Форум программистов, компьютерный форум CyberForum.ru

ключевое слово const в параметрах конструктора копий - C++

Восстановить пароль Регистрация
 
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 193
02.05.2010, 21:56     ключевое слово const в параметрах конструктора копий #1
вот такая делема возникла))есть билдер 2006 и 2009 в 6-ом конструктор копий определен так
Имя(Имя&); и все прекрасно работает как надо, когда я открываю проект в 2009 и нажимаю на запуск мне выскакивает ошибка на присваивании объекту функции, которая возвращает другой объект
[BCC32 Error] Unit1.cpp(175): E2285 Could not find a match for 'Strochka::Strochka(Strochka&)'
но это не все...я потом решил сделать определение конструктора так Strochka::Strochka(const Strochka&); и воаля..все заработало отлично..

объясните мне в чем суть? что видит 2009 чего не видит 2006 или вообще из-за чего такие ошибки возникают
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
02.05.2010, 23:18     ключевое слово const в параметрах конструктора копий #2
По Стандарту, конструктор копий (copy constructor) может иметь любую из сигнатур Strochka::Strochka(Strochka&); или Strochka::Strochka(const Strochka&);
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 193
03.05.2010, 13:32  [ТС]     ключевое слово const в параметрах конструктора копий #3
ну прям глаза открыл щас)))вопрос то не в стандартах))вопрос, почему в билдере 2009 не прохидит конструктор без const при возвращении и присвоении?
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
03.05.2010, 14:05     ключевое слово const в параметрах конструктора копий #4
Значит, это кривизна конкретно дебилдеровского компилятора. Вариантов у тебя только два: либо примириться и считать такое поведение багофичей и помнить о нем, либо - отправить дебилдер туда, где ему самое место (в Корзину).
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
03.05.2010, 14:07     ключевое слово const в параметрах конструктора копий #5
salvafion:
Вопрос как раз таки в стандарте: как разработчики компиляторов внедряют этот стандарт в
свои компиляторы.
Это еще мелочь, вы еще не видели, то что компиляторы могут делать: не опираясь ни на какой стандарт.
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 193
03.05.2010, 14:13  [ТС]     ключевое слово const в параметрах конструктора копий #6
так я бы понял еслиб он без const не работал вообще..тогда да, это есть особенность компилятора. но он работает и без этого ключевого слова...только конкретно в этом случае он выдал такую ошибку...были бы стандарты тогда бы он везде так ошибку выдавал, а так только в некоторых случаях....2006 же ни че не выдает а работает и с тем и с тем..вот и интересно ииз-за чего такие ошибки могут возникнуть...и вообще че всем билдер так не любят??на мой взгляд очень понятная и простая в использовании программа не то что вижак с его MFC где надо что б обработчик создать через кучу контекстных меню пройти....да и вообще это дело вкуса каждого
Yandex
Объявления
03.05.2010, 14:13     ключевое слово const в параметрах конструктора копий
Ответ Создать тему
Опции темы

Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru