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

Зачем в случае присваивания делают ссылку/указатель на аргумент константным - 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. Частное двух длинных = длмнное 5. Остаток от деления длинного на длинное = длинное 6. Разность двух длинных. 7. Сравнение двух длинных.
C++ Вопрос по синтаксису языка http://www.cyberforum.ru/cpp-beginners/thread338987.html
Народ, всем привет!!! Вопрос такой: есть 2 класса, как вставить в класс Prizm функцию friend void Sravanenie_H(Cube&cube,Prizm&prizm,float h1,float h2) и почему в самой функции не видит переменную H из класса Prizm? #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body { protected:
C++ DirectX9 Direct3D Здравствуйте! Возникла проблема: При загрузке х. файлов из пакета ДиректХ все нормально (тот же самый тигр). Но если я експортирую из 3Д Макса в х. файл, то обьект выводится без текстуры. Может кто знает в чем причина. На счет управления камерой: На сколько я понял все сводится к установке матрицы D3DXMatrixLookAtLH( подробнее

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

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

Если вы не собираетесь в своей функции менять объект класса, то лучше передать его по константной ссылке. Размер ссылки, фактически, равен размеру int, то есть обычно занимает одно машинное слово, и никакие конструкторы и деструкторы не вызываются. А для объектов класса при передачи их по значению в стеке создается к тому же копия этого класса, а классы могут быть очень громоздкими!
 
Текущее время: 13:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru