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

Компилятор просит указать const в конструкторе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ MessageBox API http://www.cyberforum.ru/cpp-beginners/thread629083.html
MessageBox API: не получаеться обработать выбор. Мой код: int SELECT = MessageBox(hwnd, _T("Вы действительно хотите завершить работу программы? ВНИМАНИЕ! В случае завершения работы программы,...
C++ Перегрузка потокового оператора (<<). Выдает адрес вместо значения Сабж. Все компелится нормально. Если делать << void то работает ок см комменты если делать класса std::ostream& то возвращает 16чное значение. Заранее спасибо #ifndef Point_HPP // anti... http://www.cyberforum.ru/cpp-beginners/thread629067.html
C++ Реализовать шаблонный класс
В общем требуется реализовать шаблонный класс FixedArray<T,N> FixedArray - абстракция вокруг T Использование выглядит как то так: FixedArray<std::vector, 8> myArr1 = {1, 2, 3, 4};...
stdlib.h - quicksort C++
Идея такова: отсортировать массив A очень быстрым методом Хоара. Пробовал в stdlib.h делать QuickSort - ничего не получилось. Все значения элементов - до 263-1. Т.е. влазят в тип long. Помогите...
C++ KeyDown обрабатывает только символы http://www.cyberforum.ru/cpp-beginners/thread629012.html
Всем привет. Собственно сам вопрос, когда я вызываю функцию (пишу на WinApI, но вопрос из основ c++) Она реагирует только на буквы, цифры, а мне нужно ещё VK_LEFT, VK_RIGHT. Но почему то эта функция...
C++ Написать dll для дальнейшего использования в программах на других языках как правильно написать dll чтоб ей можно было пользоваться программам на других языках, например, на delphi подробнее

Показать сообщение отдельно
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
26.07.2012, 19:26
Цитата Сообщение от moskitos80 Посмотреть сообщение
Кстати, то что временный, безымянный объект не получается преобразовать в ссылку - это по-человечески понятно
Ну, вот здесь же по сути, объект temp тоже временный, после выхода из функции он уничтожается.
C++
1
2
3
4
5
6
Fract Fract::lowterms(void)
{
    //...
    Fract temp(this->num, this->den);
    return temp;
}
Но для того, чтобы функция вернула результат, он передаётся в конструктор копирования, по ссылке. И для него const не нужен. А чем безымянный объект "хуже" него, я не могу понять.

По поводу const, по идее его надо использовать везде, где не предполагается изменение данных. Конструктор копирования принимает ссылку на объект, из которого будет произведено копирование. Ясно, что этот объект изменять внутри функции ни в коем случае нельзя. Поэтому тут можно обезопасить себя от потенциальных ошибок с помощью const.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru