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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,598
Записей в блоге: 12
#1

Бьерн Страуструп второе издание ошибка в моей голове или в коде? - C++

19.11.2011, 21:26. Просмотров 1073. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            void expr::copy(expression* s, int deep)
            {
              if (deep == 0) { // копируем только члены
                 *this = *s;
              }
              else { // пройдемся по указателям:
                 left = s->clone(1);  [COLOR="Red"]  //!!!!!!!!!!!![/COLOR]
                 right = s->clone(1);
                 // ...
              }
            }
 
            expr* expr::clone(int deep)
            {
              expr* r = new expr();  // строим стандартное выражение
              r->copy(this,deep);    // копируем `*this' в `r'   [COLOR="red"]!!!!!!!!!!!!![/COLOR]
              return r;
}
я считаю что произойдёт бесконечная рекурсия прав ли я?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 21:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бьерн Страуструп второе издание ошибка в моей голове или в коде? (C++):

Бьерн Страуструп рассказывает о c++14 - C++
Подумал, может кому интересно будет :) 1OEu9C51K2A

Бьерн Страуструп. Инсталляция библиотеки FLTK - C++
Всем доброго времени суток. Помогите пожалуйста решить проблему. Хочу сразу оговориться, что уровень моих знаний в области программирования...

Калькулятор из книги Язык программирования С++ (автор Бьерн Страуструп) - C++
Доброго времени суток. Изучаю С++, начал с классической книги Страуструпа: Язык программирования С++. Специальное издание. В главе 6...

Ответы на книгу Бьерн Страуструп Программирование - Принципы и практика с помощью C + + - C++
Вот хотел есть ли книга с ответами на упражнения в книги Бьерн Страуструп Программирование - Принципы и практика с помощью C + + . Просто...

namespace Страуструп 3-е издание - C++
Добрый вечер народ) Читаю книгу Страуструпа 3-е издание там встретился такой фрагмент кода: namespace Stack { ...

Страуструп 3 издание в электронном виде - C++
Есть ли у кого-нибудь в электронном виде, пришлите ссылку plz.

7
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 21:42 #2
Цитата Сообщение от Van111 Посмотреть сообщение
я считаю что произойдёт бесконечная рекурсия прав ли я?
не прав, в expr::copy стоит проверка которая недопустит этого
0
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,598
Записей в блоге: 12
19.11.2011, 21:44  [ТС] #3
Цитата Сообщение от Jupiter Посмотреть сообщение
не прав, в expr::copy стоит проверка которая недопустит этого
но
r->copy(this,deep); передаст 1 в качестве deep
а это вызывает
left = s->clone(1);
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 21:54 #4
по этому куску кода трудно что либо сказать, но я бы рекомендовал взять 3-е издание книги и еще отдельно почитать про рекурсивный спуск
1
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,598
Записей в блоге: 12
19.11.2011, 21:57  [ТС] #5
Цитата Сообщение от Jupiter Посмотреть сообщение
по этому куску кода трудно что либо сказать, но я бы рекомендовал взять 3-е издание книги
то есть ошибки в книге имеются?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 22:03 #6
Цитата Сообщение от Van111 Посмотреть сообщение
то есть ошибки в книге имеются?
во 2-м издании да, об этом говорит сам Бьерн Страуструп в предисловии к 3-му
0
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,598
Записей в блоге: 12
19.11.2011, 22:09  [ТС] #7
Цитата Сообщение от Jupiter Посмотреть сообщение
по этому куску кода трудно что либо сказать
ну вот смотрите вызывается copy с параметром(я про deep) 1 !!
выполняется left = s->clone(1) ,параметр равен одному !!!!!
выполняется r->copy(this,deep) с параметром один !!
выполняется left = s->clone(1) ,параметр равен одному !!!!!

Добавлено через 6 минут
Цитата Сообщение от Jupiter Посмотреть сообщение
рекомендовал взять 3-е издание книги
дайте ссылку для скачивание пожалуйста
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 22:12 #8
Цитата Сообщение от Van111 Посмотреть сообщение
дайте ссылку для скачивание пожалуйста
это противоречит правилам форума!
0
19.11.2011, 22:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 22:12
Привет! Вот еще темы с ответами:

Страуструп.Язык программирования С++.3(спец.)издание.Глава4.Упражнение7 - возникли вопрос - C++
Условие: "Нарисуйте граф целых и фундаментальных типов,где от одного типа идёт стрелка к другому,если все значения первого типа могут быть...

Кто читал Бьярне Страуструп Программирование: принципы и практика использования C++, исправленное издание - C++
Люди кто читал Бьярне Страуструп Программирование: принципы и практика использования C++, исправленное издание. Не как не могу разобраться...

книгa "Программирование: принципы и практика использования C++, исправленное издание, Бьярне Страуструп; - C++
а в этой книги "Программирование: принципы и практика использования C++, исправленное издание, Бьярне Страуструп;" описанно про циклы....

Страуструп или С++ за 21 дней? - C++
Народ,подскажите,что лучше страуструп или Вильямс?мне кажется мне щас подойдет Вильямс,я думаю что щас нуждаюсь в основе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru