![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Особено непонятно, что же передается в функцию. Передается обьект. Я более менее понимаю, что в функцию может пиредаваться переменная, с не могут происходить различные действия. Что значит, если в функцию передается обьект? Что с ним можно делать? как все это понять?
Ведь обьект- это обьект, который может иметь свойства (как определенная кошка может иметь цвет, вес, возраст) выражающися переменными?И уже их можно передавать и совершать с ними действия? Что это за конструктор копирования? Как простой конструктор и конструктор копирования соотносятся друг с другом? и что и зачем мы в него передаем? У нас SimpleCat-это класс. Зачем его, или его копию передавать в конструктор? Что можно и что вобще нужно делать с помощю такого конструктора? Дальше, совершено уж непонятно. После передачи в функцию Function0ne обьекта Frisky конструктор копирования вызывается дважды. И деструктор дважды!!! И функция не распечатывает сообщения коут из себя самой. Вот дела!! У меня все извилины спутались и свернулись. А после передачи в функцию FunctionTwo, обьекта Фриски как ссылки распечатался коут из функции, а конструктор-деструктор не вызывался. Чудеса и непонятка, полнейшая!!! А простите пожалуста, обе функции распечатывают сообщения из своего тела. Но общий смысл всего очень очень малопонятен.. Причем сообщение от первой функции происходит как раз между обоими вызовами конструктора копирования! А, это так видимо и задумано- при создании какого-нь обьекта, всегда вызывается конструктор, а при передаче этого обьекта в функцию- конструктор копирования, если вызывается вобще! Не, в общем почти совсем почти ничего не понятно. Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Думаю, вам следует почитать книгу - Герберт Шилдт - C++
Там ответы на все Ваши вопросы. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
SimpleCat::SimpleCat(SimpleCat&) не есть copy конструктор.
должен быть const SimpleCat& А для того, чтоб жизнь была интересней, еще есть и оператор присваивания operator = |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Не конструктор? Вот это да! Но это из книги. Я правда добавил, но исключительно по мелочи- комментарии за слешами,строку system("pause "); ,вывод из коутов.
Константы там не было! |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Почему же? Отсутствие спецификатора const перед идентификатором аргумента не говорит о том, что это не конструктор копирования. Это говорит о плохом тоне использования конструктора копирования
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Спасибо!!!
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
Классы в плюсах - это определяемые пользователем типы, которые можно использовать точно так же, как переменные типов int, char, bool и т.д. (обычно для этого, правда, нужно обеспечить им нужную функциональность перегрузив, например, операторы =, ==, +, -, <<, >> и т.п.). Так что можете смотреть на объекты как на обычные переменные.
Конструктор копирования вызывается когда вы создаете новый объект, инициализируя его значением другого объекта строго того же типа: Код:
Код:
Вы передаете объект не по ссылке, а по указателю. Нужно заменить * на &. Код:
Цитата:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
СПАСИБО!!!!!!!!!!!!
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что делает эта программа?(код) | Kampainn5 | Общие вопросы по Java, Java SE, Kotlin | 2 | 19.09.2012 22:24 |
Обьясните, что делает это программа??? | ~Леди~ | Общие вопросы Delphi | 2 | 05.04.2011 10:47 |
Что делает эта строчка??? | marselik | Общие вопросы C/C++ | 2 | 02.11.2009 13:54 |
Что делает эта прога | StudentPolitech | Общие вопросы C/C++ | 1 | 25.03.2009 22:54 |
что делает эта программа и где ошибка? | дангер | Паскаль, Turbo Pascal, PascalABC.NET | 27 | 28.01.2008 13:38 |