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

Методы доступа - как это работает? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Арифметическая прогрессия http://www.cyberforum.ru/cpp-beginners/thread670169.html
Вообщем, поиск по форму ничего не дал, а с++ я помню плохо. Есть задачка, дана последовательность, скажем из 5 чисел, в виде массив, нужно определить являеться ли она арифметической прогрессией. Задачка простая. НО надо сделать с помощью рекурсии. Как вычислить сумму n членов прогрессия я понимаю, и то просто, даже с помощью рекурсии. Но как именно в рекурсии определить являеться ли она таковой....
C++ Как распределяется память в стеке? using namespace std; int main () { int iBu=3,iBu2=7,iBu3=-23,iBu4=-100; int* ptr, *ptr2, *ptr3=&iBu3,*ptr4=&iBu4; ptr=&iBu; ptr2=&iBu2; int **ptr_=&ptr2; cout<<endl<<"sizeof int="<<sizeof(int)<<" sizeof int *ptr ="<<sizeof(ptr); http://www.cyberforum.ru/cpp-beginners/thread670162.html
Начало профессионального пути C++
Тему С++ выбрал из-за большей обширности аудитории. Я- среднестатистический школокодер-первокурсник, обучающийся по направлению "Прикладная информатика в экономике". С первого же месяца меня начал почему-то мучать вопрос о трудоустройстве. Собсна, вопрос вот в чем- можно ли на первом курсе устроиться в какую-нибудь IT-фирму, хоть кем-нибудь, набраться опыта? Просто чтобы меня заметили. Как Вы...
C++ Проверить число на палиндром!
Добрый день! Есть программа но нужно исправить одну проблему, программа проверяет число на палиндром! Проверяет правильно когда число не длинное!
C++ Двусвязный список из структур http://www.cyberforum.ru/cpp-beginners/thread670078.html
Ребят, помогите, а то не могу пример откопилировать... typedef struct tag_lib { //задается таблица с данными в виде структуры char name; //имя сотрудника int years_old; //возраст сотрудника } LIB; typedef struct tag_obj { //структура с адресами следующих и предыдущих эл. LIB lib;
C++ Исходник Теста Поделитесь пожалуйста исходником какого нибудь теста на C++ Что бы можно было сменить вопросы(с вариантами ответов),фон и прочее. подробнее

Показать сообщение отдельно
warchief
36 / 36 / 3
Регистрация: 09.08.2012
Сообщений: 114
14.10.2012, 07:09
Цитата Сообщение от Croessmah Посмотреть сообщение
И кстати, читал я эту книгу - я бы по ней не стал учиться =)
Зря, я вот по ней как раз начинал учиться, это единственная книга по С++ которую я полностью прочел (дальше я только подбивал пробелы в знаниях материалом из других книг). Синтаксис вбился в мою голову так, что даже год в армии на это не повлиял(sic), хотя говорят что армия убивает программиста

По теме, автор вы кстати правильно мыслите. Поясню, как это работает.
вы вызываете метод класса SetAge(), передавая ему число 5. Создается локальная переменная age со значением 5. В методе вы приравниваете член класса itsAge к переменной age. Что значит приравнивание? itsAge не является подобием age, это две разные ячейки памяти просто теперь они хранят число 5, но в памяти они расположены в разных местах. То есть здесь:
itsAge = age;
itsAge не становится age. Здесь происходит копирование значения age в переменную itsAge.
Что есть копирование? Просто зайти в любую папку на компьютере и создай копию любого файла, затем удали оригинал, копия ведь при этом не удалилась? Вот и тут тоже, ты скопировал 5 в itsAge и теперь спокойно можешь удалить (точнее само удалиться) age.
Об этом ты должен был узнать из тем про оператор приравнивания
operator = ()
и копирующий конструктор
MyClass(const MyClass &)

Почему об этом стоит знать? Дело в том что операция копирования выполняет копирование, то есть в памяти создаются два одинаковых объекта и из одного в другой побайтово копируются данные. Думаю, ты догадаешься что если класс большой, копирование может снизить скорость работы.

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