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

Зачем в случае присваивания делают ссылку/указатель на аргумент константным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Киньте пожалуйста задачки с решениями, касающиеся темы классов и конструкторов http://www.cyberforum.ru/cpp-beginners/thread339076.html
Киньте пожалуйста задачки с решениями, касающиеся темы классов и конструкторов........:)
C++ Каким проектом на С++вы бы гордились??)) Я уверен, что в ваших программах, есть такие, какими бы вы гордились))) Т.к. Проекты, большие программы.........можете написать какие ваши самые грандиозные проекты были на C++ :):):):):):):):) http://www.cyberforum.ru/cpp-beginners/thread339015.html
написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом C++
Здравствуйте! Последний раз программировал около 5 лет назад, на первых курсах колледжа. Забыл все полностью. Сейчас возникла необходимость опять взяться за это дело :) Поэтому у меня пара...
C++ Длинная арифметика
Срочно нужны исходники (функции): 1. Перевод обычного числа в длинное (массив, строка , вектор кто с чем работает) 2. Нахождение суммы двух длинных. 3. Произведение двух длинных. 4. Частное двух...
C++ Вопрос по синтаксису языка http://www.cyberforum.ru/cpp-beginners/thread338987.html
Народ, всем привет!!! Вопрос такой: есть 2 класса, как вставить в класс Prizm функцию friend void Sravanenie_H(Cube&cube,Prizm&prizm,float h1,float h2) и почему в самой функции не видит переменную H...
C++ DirectX9 Direct3D Здравствуйте! Возникла проблема: При загрузке х. файлов из пакета ДиректХ все нормально (тот же самый тигр). Но если я експортирую из 3Д Макса в х. файл, то обьект выводится без текстуры. Может... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
04.08.2011, 17:49
Цитата Сообщение от hepr Посмотреть сообщение
Здравствуйте, позвольте я задам вопрос по С++
1) void Class::set(const int & i)
{
qwerty = i;
}
Зачем в случае присваивания делают ссылку/указатель на аргумент константным
В данном конкретном случае передача int по ссылке и даже по константной ссылке бессмысленно!

Имеет смысл передавать по ссылке классы, так как при передачи их по значению вызываются конструкторы, которые влекут за собой накладные расходы. То есть при передаче класса по значению в качестве аргумента, во-первых, вызывается конструктор для создания копии значения, а при завершении функции вызывается деструктор этого класса.

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