|
32 / 32 / 3
Регистрация: 04.04.2010
Сообщений: 414
|
|
Посоветуйте новичку в С++31.07.2011, 17:04. Показов 13014. Ответов 126
Метки нет (Все метки)
Здравствуйте!
После школьной программы знаком с основами Паскаля, Делфи. Скоро поступлю в ВУЗ. Скорей всего буду изучать там С++. Решил немного подготовиться. Скачал книгу Либерти (21 день). Сейчас остановился на девятом дне. "Прошел" указатели и ссылки. Возникают большие трудности при использовании указателей и ссылок в классах. Утечки, нулевые объекты, мины замедленного действия, одним словом остались для меня непонятными. Во-первых мне интересно - я виноват? Или это тяжелые темы для всех? Сколько вы потратили дней, чтобы полностью разобраться в этих темах? Вся сложность в них в том, что надо понимать, как записывается информация, где хранится, когда будет запускаться конструктор, copy конструктор, деструктор. Как надо использовать функции чтобы не запускать copy конструктор. Во-вторых я хочу спросить, а надо ли мне новичку, знакомым с С++ 7 дней, разбираться в таких, как мне кажется профессиональных вещах? Может можноо обратиться к ним позже? Или дальше без этих тем не уедешь? Тоесть основной вопрос: если остались непонятки в этих темах, можно изучать дальше, а потом вернуться к ним? Или лучше сейчас все понять?
0
|
|
| 31.07.2011, 17:04 | |
|
Ответы с готовыми решениями:
126
посоветуйте новичку в С++ посоветуйте литературу, новичку Посоветуйте книгу/-и новичку |
| 05.08.2011, 22:52 | ||
|
Согласитесь использовать и понимать это большая разница.
1
|
||
|
Higher
|
|
| 06.08.2011, 09:41 | |
|
Но я все-таки не понимаю, зачем все усложнять. Генерация исключения заставит читающего код запнуться и разбираться, с какой целью его сгенерировали. Ну и это явно менее эффективно, чем goto(там, если я не ошибаюсь, одна строчка на asm).
Если использовать несколько goto, тогда да, код становится крайне сложно отладить. Но одна маленькая goto'шка в некоторых случаях только улучшит читаемость и быстродействие. Можно, конечно, использовать функции - но зачем все усложнять?
0
|
|
|
Заблокирован
|
|
| 06.08.2011, 10:42 | |
|
с goto в С++ надо быть предельно осторожным. При выходе из областей видимости вызываются деструкторы для автоматических объектов. При выходе из циклов с помощью goto никакие деструкторы не вызываются, что естественно приводит к печальным последствиям. А с throw в этом плане всё в порядке
1
|
|
|
|
|||
| 06.08.2011, 10:50 | |||
Простое правило: goto в пределах одной области видимости, не больше! Все равно самый лучшим вариантом будут изменения на более высоком уровне, чем на уровне команд или инструкций. Серьезно, грамотный рефакторинг - это панацея
0
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 06.08.2011, 11:04 | ||
|
0
|
||
|
|
|||
| 06.08.2011, 11:15 | |||
Иначе, выгоднее было бы хранить массив указателей на элементы, а не сами элементы. Манипулировать указателями быстрее. А так сохраняется совместимость с обычными массивами.
0
|
|||
|
|
||
| 06.08.2011, 11:22 | ||
|
1
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 06.08.2011, 11:42 | ||
|
Но это всё-равно не значит, что стоит применять goto где попало.
2
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 06.08.2011, 12:39 | ||
|
A vector is a kind of sequence that supports random access iterators. In addition, it supports (amortized) constant time insert and erase operations at the end; insert and erase in the middle take linear time. Storage management is handled automatically, though hints can be given to improve efficiency. A vector satisfies all of the requirements of a container and of a reversible container (given intwo tables in 23.1) and of a sequence, including most of the optional sequence requirements (23.1.1). The exceptions are the push-front and pop_front member functions, which are not provided. Ну и несколько цитат: Страуструп: «Стандарт не предписывает специального представления для каждого стандартного контейнера». Джосьютис: «Однако стандарт не утверждает, что в реализации вектора должен использоваться именно динамический массив. Скорее этот выбор обусловлен ограничениями и требованиями к сложности операций». Так что формально никто не запрещает написать компилятор, где вектор массивом не является.
1
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 06.08.2011, 12:46 | ||
|
Mr.X, Джосьютис написал это задолго до выхода C++03, но даже у него далее есть отсылка на то, что в стандарте подразумевалась непрерывность элементов вектора и что возможно в будущем это будет внесено в стандарт явно. И действительно, в C++03 это указано прямым текстом, что и процитировал fasked. Сможешь показать разумную реализацию не через массив, но так, чтобы требование непрерывности выполнялось?
0
|
||
|
|
||||||||
| 06.08.2011, 12:54 | ||||||||
![]() Заметьте, ни я ни Майерс не говорим про массив, а лишь про непрерывное хранение элементов, то есть друг за другом, как в массиве, а не с помощью массива. Не по теме: Вечером поищу текущий стандарт и приведу цитату из него. Есть подозрения, что Вы просто не нашли нужных слов Хотя, по Мейерсу, я должен был написать следующий вызов Си функции:
0
|
||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 06.08.2011, 13:44 | |
|
0
|
|
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||
| 06.08.2011, 14:49 | ||
|
А если есть выходу из середины, то без раздумий не получится - надо читать код и вникать, как цикл работает.
0
|
||
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||
| 06.08.2011, 15:02 | ||
|
0
|
||
|
Заблокирован
|
||
| 06.08.2011, 15:13 | ||
|
Любой костыль, это "меньшее из двух зол". ключевое слово "зло"
0
|
||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|||
| 06.08.2011, 15:17 | |||
|
Добавлено через 2 минуты
0
|
|||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 06.08.2011, 15:33 | |
|
0
|
|
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 06.08.2011, 15:38 | ||
|
alex_x_x, по-моему ValeryLaptev как раз про throw и говорил.
Добавлено через 1 минуту Точнее даже про
1
|
||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
| 06.08.2011, 15:53 | |
|
Именно! Для объекта, созданного операцией new() деструктор вызовется только при выполнении delete(). При раскрутке стека для таких объектов деструктор не вызывается.
0
|
|
| 06.08.2011, 15:53 | |
|
Посоветуйте новичку книжку или сайт, где описывается создание графического интерфейса в VC Посоветуйте новичку
Посоветуйте новичку!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|