Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/60: Рейтинг темы: голосов - 60, средняя оценка - 4.65
 Аватар для gore-lykovoe
32 / 32 / 3
Регистрация: 04.04.2010
Сообщений: 414

Посоветуйте новичку в С++

31.07.2011, 17:04. Показов 13022. Ответов 126
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
После школьной программы знаком с основами Паскаля, Делфи. Скоро поступлю в ВУЗ. Скорей всего буду изучать там С++. Решил немного подготовиться.
Скачал книгу Либерти (21 день).
Сейчас остановился на девятом дне. "Прошел" указатели и ссылки. Возникают большие трудности при использовании указателей и ссылок в классах. Утечки, нулевые объекты, мины замедленного действия, одним словом остались для меня непонятными.
Во-первых мне интересно - я виноват? Или это тяжелые темы для всех? Сколько вы потратили дней, чтобы полностью разобраться в этих темах? Вся сложность в них в том, что надо понимать, как записывается информация, где хранится, когда будет запускаться конструктор, copy конструктор, деструктор. Как надо использовать функции чтобы не запускать copy конструктор.
Во-вторых я хочу спросить, а надо ли мне новичку, знакомым с С++ 7 дней, разбираться в таких, как мне кажется профессиональных вещах? Может можноо обратиться к ним позже? Или дальше без этих тем не уедешь?
Тоесть основной вопрос: если остались непонятки в этих темах, можно изучать дальше, а потом вернуться к ним? Или лучше сейчас все понять?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2011, 17:04
Ответы с готовыми решениями:

посоветуйте новичку в С++
Здравствуйте! Я изучаю С++. С начала я скачала книгу Либерти, но было очень трудно. Сейчас я изучаю из книги "Шилдт Г. С++ Базовый...

посоветуйте литературу, новичку
:help: знаю, конечно, что в разделе "важно" (но всё-таки один раз живём :beach:) эта тема уже обсуждена, но всё-таки можете посоветовать...

Посоветуйте книгу/-и новичку
Доброе время суток человечество! Посоветуйте пожалуйста книгу по с++ новичку, желательно поновее. и если можно ссылку на книгу. Заранее...

126
Заблокирован
05.08.2011, 20:03
Студворк — интернет-сервис помощи студентам
я разговор ни в какую сторону не увожу. Ты сам до сих пор не объяснил, где и как это
Цитата Сообщение от LosAngeles Посмотреть сообщение
компилятор перед вызовом конструктора, деструктора или нестатического метода неявно кладёт указатель this в стек или регистр
используется

Цитата Сообщение от Сыроежка Посмотреть сообщение
забывая, что итераторы - это очень часто те же самые указатели
итераторы - это итераторы. Как они реализованны мне до фени повторяю который уже раз по счёту, третий кажется. Когда я пишу программу, меня интересует только интерфейс инструмента, которым я пользуюсь. Если же для понимания того, как работает этот инструмент, мне ещё и в его реазлизацию надо заглядывать, я его сразу выкидываю и беру другой
0
Заблокирован
05.08.2011, 20:05
Цитата Сообщение от diagon Посмотреть сообщение
Нет.
Это класс с перегруженной операцией разыменования.



Мне больше интересно, как я смогу использовать вектор с указателями ; D


Си - возможно. Но касательно с++ - сомневаюсь =) Аргументируйте, пожалуйста.
Я вам уже сказал: идите и учите С++! Даже не серьезно обсуждать то, что вы пишите.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.08.2011, 20:07
Цитата Сообщение от Сыроежка Посмотреть сообщение
Я вам уже сказал: идите и учите С++! Даже не серьезно обсуждать то, что вы пишите.
Т.е. аргументов у вас нету? =)
Не спорю, я с++ в районе 5 месяцев изучаю. Однако уже прочел книгу Страуструпа, чего и вам желаю. Может, познакомитесь с абстракцией данных =)
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
05.08.2011, 20:11
Сыроежка, если ты собираешься реализовать контейнер вроде вектора, то указатели тебе нужны. А если ты собираешься использовать контейнер вроде вектора, то указатели тебе нафиг не нужны.
Я сейчас работаю с матрицей (вектор векторов) размером 25000*25000, использую list, deque и другие стандартные контейнеры. И ни разу мне не пришлось вспомнить об указателях.

Кстати, на Яве прекрасно программируют без всяких указателей. На Додиезе - тоже, хотя указателя там есть.

Добавлено через 2 минуты
Сыроежка, ты чего такой невежливый. Прочитай-ка мою книжку по ООП сначала! Или мож свою напишешь?
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
05.08.2011, 20:13
Я самоучка. При чем нельзя сказать, что я правильно и последовательно все изучал. Поначалу, можно сказать, даже понятия не имел, что такое указатели. Писал на том уровне абстракции, что можно и без них. Но вот однажды погрузился и очень многое встало на места. Так, что я согласен с теми кто говорит, что понимать это нужно.

Кстсати, вон на делфе на той же можно наклепать некую несложную программу. (А ведь паскаль дают во многих школах), т.е. уровень вхождения доступный. Наклепал форму,тыкнул на кнопку, приписал формулу типа label1.caption:='dsad'; И программа готова. И, в принципе, возможен какойто круг задач, где этого достаточно. И в общем то получается, что и ООП понимать не обязательно..... И т.д и т.д.

Но вот можно ли говорить как о специалисте непонимающем ООП.... Имхо, как то так...
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
05.08.2011, 20:18
Цитата Сообщение от voral Посмотреть сообщение
Я самоучка. При чем нельзя сказать, что я правильно и последовательно все изучал. Поначалу, можно сказать, даже понятия не имел, что такое указатели. Писал на том уровне абстракции, что можно и без них. Но вот однажды погрузился и очень многое встало на места. Так, что я согласен с теми кто говорит, что понимать это нужно.

Но вот можно ли говорить как о специалисте непонимающем ООП.... Имхо, как то так...
Совершенно верно! Понимать нужно. Но вообще-то нужно еще глубже - на уровне архитектуры компьютера понимать. Тогда понимание указателей наступает на счет НОЛЬ, то есть вы их уже знаете, если знаете архитектуру.
Но далеко не во всякой программе нужно их использовать. Более того, чем меньше используешь указатели, тем лучше!
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
05.08.2011, 20:20
Цитата Сообщение от diagon Посмотреть сообщение
Нет.
В некотором роде да:
С++03
Since iterators are an abstraction of pointers, their semantics is a generalization of most of the semantics of pointers in C++
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
05.08.2011, 20:36
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Более того, чем меньше используешь указатели, тем лучше!
Когда вы совсем (не о Вас, Валерий, а абстрактно о программисте) научитесь обходиться без указателей, вы становитесь "Java"-программистом
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
05.08.2011, 20:36
Цитата Сообщение от diagon Посмотреть сообщение
Мне больше интересно, как я смогу использовать вектор с указателями ; D
нуууу....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <vector>
#include <iostream>
 
void some_c_function(const int *ptr, size_t nsize) {
   while (nsize--) {
      printf("%d, ", *ptr++);
   }
}
 
int main() {
   std::vector<int> vec = { 1, 2, 3, 4, 5 };
   some_c_function(&vec[0], vec.size());
   
   return 0;
}
Стыдно не знать, что такое указатели и говорить, что пишешь на C++. Стыдно, товарищи, стыдно...
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.08.2011, 20:50
Цитата Сообщение от fasked Посмотреть сообщение
нуууу....
Вектор+указатели+printf
Волшебный стиль программирования, преемники оценят.
Я имел в виду ситуации, где это действительно уместно.

Цитата Сообщение от fasked Посмотреть сообщение
Стыдно не знать, что такое указатели и говорить, что пишешь на C++. Стыдно, товарищи, стыдно...
Я в общем-то с си начинал, так что знаю.



Цитата Сообщение от voral Посмотреть сообщение
Я самоучка. При чем нельзя сказать, что я правильно и последовательно все изучал.
Аналогично. Писал так, как работает у меня, поэтому сильно не хватало критики. Даже подпись соответствующую сделал =)
Но начинал я наоборот с си, потом перешел на STL, сейчас потихоньку яву изучаю, там вообще указателей нету. Сейчас пользуюсь разве что указателями на функции. Во-первых, так проще, не нужно отвлекаться на " а правильно ли это будет работать?", а во-вторых стабильнее.





Цитата Сообщение от voral Посмотреть сообщение
на делфе на той же можно наклепать некую несложную программу. (А ведь паскаль дают во многих школах), т.е. уровень вхождения доступный. Наклепал форму,тыкнул на кнопку, приписал формулу типа label1.caption:='dsad'; И программа готова.
Цитата Сообщение от voral Посмотреть сообщение
И в общем то получается, что и ООП понимать не обязательно....
Т.е. то, что вы изменили переменную объекта label1 - это не ООП? Сами себе противоречите.
Понимать без сомнения надо, чтобы свои классы писать. Где-то у Страуструпа читал, что процесс разработки программы делится на какие-то пункты, среди них поиск стандартных компонентов, подходящих для этой программы, и написание своих стандартных компонентов.


Цитата Сообщение от asics Посмотреть сообщение
В некотором роде да:
Ключевое слово - abstraction
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
05.08.2011, 20:51
Цитата Сообщение от Сыроежка Посмотреть сообщение
Я вам уже сказал: идите и учите С++! Даже не серьезно обсуждать то, что вы пишите.
Да уж, никогда бы такое ValeryLaptev и diagon не сказала бы... Ощущение, что от них поучится многому можно
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
05.08.2011, 20:51
Понимаете, С++ - это язык-конструктор. А в конструкторе - много разных деталей. Есть всякие большие "железки" вроде классов и т.п. А есть типа мелкие "болты и гайки" - указатели. Указатели - это очень машинно-ориентированная конструкция, хотя их и пытались "облагородить". Итератор - это высокоуровневая абстракция, которая в С++ намеренно сделана похожей на указатель - из-за массивов. Но вообще-то итератор - это объект некоего класса, имеющий доступ к элементам контейнера. Я могу итератор для вектора реализовать на основе индексов, а не на основе указателей.
1
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
05.08.2011, 20:55
Цитата Сообщение от diagon Посмотреть сообщение
Ключевое слово - abstraction
Кэп ? Я же написал:

Цитата Сообщение от asics Посмотреть сообщение
В некотором роде
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
05.08.2011, 20:56
Цитата Сообщение от diagon Посмотреть сообщение
Сейчас пользуюсь разве что указателями на функции. Во-первых, так проще, не нужно отвлекаться на " а правильно ли это будет работать?", а во-вторых стабильнее.
Сейчас это считается признаком плохого тона, извини, diagon, при всем уважении
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.08.2011, 20:58
Цитата Сообщение от Olga_ Посмотреть сообщение
Сейчас это считается признаком плохого тона, извини, diagon, при всем уважении
Что именно?
Игнорирование указателей или использование указателей на функции? Со вторым согласен, но иногда действительно удобно.
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
05.08.2011, 21:01
Цитата Сообщение от diagon Посмотреть сообщение
Что именно?
Игнорирование указателей или использование указателей на функции? Со вторым согласен, но иногда действительно удобно.
Я про указатели на функции, не более того. Скоро это как использование goto будет считаться
0
05.08.2011, 21:05

Не по теме:

Цитата Сообщение от Olga_ Посмотреть сообщение
Я про указатели на функции, не более того. Скоро это как использование goto будет считаться
Где-то у Страуструпа хороший пример видел, там вроде меню с помощью массива указателей на функции предлагалось.
А я и goto иногда использую =)
Иногда попадаются задачи, где приходится использовать 5-8 вложенных циклов. Можно, конечно, завести булеву переменную и таскать ее по всем условиями, и чуть что, изменять все условия... А можно обойтись одним маленьким goto.
Но это уже, во-первых, холивар, во-вторых, лютый оффтоп.

0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
05.08.2011, 21:08
Цитата Сообщение от diagon Посмотреть сообщение
А я и goto иногда использую =)
Иногда попадаются задачи, где приходится использовать 5-8 вложенных циклов. Можно, конечно, завести булеву переменную и таскать ее по всем условиями, и чуть что, изменять все условия... А можно обойтись одним маленьким goto.
https://www.cyberforum.ru/cpp-... post879619
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
05.08.2011, 21:10
Цитата Сообщение от diagon Посмотреть сообщение

Не по теме:


Где-то у Страуструпа хороший пример видел, там вроде меню с помощью массива указателей на функции предлагалось.
А я и goto иногда использую =)
Иногда попадаются задачи, где приходится использовать 5-8 вложенных циклов. Можно, конечно, завести булеву переменную и таскать ее по всем условиями, и чуть что, изменять все условия... А можно обойтись одним маленьким goto.
Но это уже, во-первых, холивар, во-вторых, лютый оффтоп.

Для себя так можно поступать, но в крупных проектах не стоит.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
05.08.2011, 21:12
Цитата Сообщение от diagon Посмотреть сообщение
Вектор+указатели+printf
Например, один из модулей вполне может быть сишным, по многим причинам (скорость, бинарная совместимость, нежелание переписывания ее на другом языке и т.д.), представьте, что эта функция в отдельном компилированном объектном файле (библиотеке). Я не просто так дал такое имя функции.

asics, исключения для выхода из циклов - это еще хуже, чем goto
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2011, 21:12

Посоветуйте новичку порядок действий
Посоветуйте новичку, в двух словах, порядок действий и название команд. Требуется, на Visual C, написать прогу, которая бы заходила на...

Посоветуйте новичку книжку или сайт, где описывается создание графического интерфейса в VC
Добрый вечер, подскажите пожалуйста какую нибудь книжку или сайт где описывается создание графического интерфейса в VC.

Посоветуйте новичку
Всем привет, посоветуй пожалуйста хороший учебник по php. Я почитал эту тему https://www.cyberforum.ru/php-beginners/thread125023.html...

Посоветуйте новичку
Хочу собрать комп до 100к.Вот то, что сам насобирал: 1)процессор - Intel core i7-6700K Box 2)видеокарта - MSI GeForce GTX1070 Gaming 8G...

Посоветуйте новичку!!
Здравствуйте, пару минут проведя на форуме меня заинтересовал раздел вебпрограммирование (Решил как раз спросить). Я сам начинающий. Хотел...


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru