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

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

31.07.2011, 17:04. Показов 14067. Ответов 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 / 1465 / 265
Регистрация: 16.03.2008
Сообщений: 6,512
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru