Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/54: Рейтинг темы: голосов - 54, средняя оценка - 4.89
 Аватар для strange_man
13 / 13 / 2
Регистрация: 17.05.2012
Сообщений: 121

Насколько нужно выучить C++, перед тем как переходить на C#?

14.07.2013, 09:59. Показов 11530. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я изучаю программирование (язык С++) дома, в институте наверно тоже скоро будем его изучать. Я знаю, что C++ очень полезно знать и владение им на хорошем уровне всегда приветствуется. Но меня очень волнует, что сейчас везде стали делать акцент на C# и Java и я боюсь, что сейчас, начав изучать C++, я теряю время, которое мог бы потратить на изучение C#. Например, некоторые мои одногруппники сейчас изучают самостоятельно C#. Я тоже в будущем перейду на C# ввиду роста его популярности, но на какой точке это лучше сделать? Ведь C++ я все равно не овладею на все 100%, а вечно изучать его не буду.
P.S. Я обучаюсь на системного программиста. Но предпочтительно планирую заниматься разработкой программ высокого уровня.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2013, 09:59
Ответы с готовыми решениями:

Что нужно знать и уметь перед тем как изучать ассемблер?
Какие предварительные знания нужны? Насколько хорошо нужно знать архитектуру компьютера и прочее?

За сколько по времени можно выучить С и C++ и насколько они сложны в изучении?
За сколько по времени можно выучить С и С++ и насколько они сложны в изучении?

ПРАВИЛА РАЗДЕЛА. Перед тем как просить
Создание топика 1) Заголовок должен нести краткую суть топика. 2) Запрещается, делать заголовки, вида: "help"; "помогите...

42
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
14.07.2013, 13:12
Студворк — интернет-сервис помощи студентам
паралельно учить: это написать программу на С++ и сразу реализировать её на С# ?
0
20 / 20 / 2
Регистрация: 01.05.2012
Сообщений: 61
14.07.2013, 13:14
Цитата Сообщение от strange_man Посмотреть сообщение
вообще я хотел бы gamedev'ом заниматься, по возможности
Тогда ассемблер! )))
http://pouet.net/sourceprod.php
ftp://ftp.scene.org/pub/resour... v-100b.zip
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
14.07.2013, 13:16
На правах бреда.
Я бы сказал... Пока не надоест.
С++ ведь так уродлив. Тошнить скоро будет от наличия трех разных операторов доступа: . -> :: Ну какое мне дело - работаю я с пространством имен, классом, объектом или указателем? В C# красота - одна точка на все случаи.
Описание классов в двух файлах - .h и .cpp - вообще кошмар. Это ж постоянно надо поддерживать согласованность имен. Я ведь могу параметр функции в заголовке назвать одним словом, а в реализации другим - такой бардак будет.
И эти на каждом шагу торчащие const в плюсовом коде... Особенно когда они вылезают после объявления метода.
Точки с запятой в конце определений классов - мусор в коде.
Адресная арифметика и указатели - не нужны. Сколько нервов было убито в свое время на их понимание.
Передача аргументов по const-ref - сколько джуниоров схлопотали линейкой по рукам за то, что забывали это делать?
Это я еще молчу про наличие такой пакости как препроцессор, отсутствие нормальных модулей в языке и прочем уродстве.

А в шарпе все красиво, стройно, элегантно. Очень такой женский язык получается. Вот только пока пишешь, не отпускает чувство, что стоишь под душем в скафандре.
1
14.07.2013, 13:21

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
А в шарпе все красиво, стройно, элегантно.
Понятие красоты у всех разное. Вот для меня шарп - уродство :)
И вспоминать не хочется :)

1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2013, 13:22
Цитата Сообщение от Убежденный Посмотреть сообщение
Кто мешает изучать параллельно оба языка ?
Не знаю ни одного хорошего программиста, который был бы сидел только в своем "болоте".
я знаю достаточно таких айосников
хотя там достаточно смежных технологий ..
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
14.07.2013, 13:25

Не по теме:

Цитата Сообщение от diagon Посмотреть сообщение
Хм. А если это дефайн?
Дефайны в глобальном пространстве имён определяются.


Цитата Сообщение от 0x10 Посмотреть сообщение
С++ ведь так уродлив.
Да. И понимание этого — необходимое условие для работы с языком. Я уверен, никто бы не писал на Плюсах, если бы у них был выбор. Если бы когда-то какие-то API делались не для Плюсов, если бы поддерживаемая программная система была бы написана не на Плюсах, если бы в учебной программе были бы не только Плюсы, если бы начинали программировать не с Плюсов.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
14.07.2013, 13:25
Цитата Сообщение от 0x10 Посмотреть сообщение
Описание классов в двух файлах - .h и .cpp - вообще кошмар. Это ж постоянно надо поддерживать согласованность имен. Я ведь могу параметр функции в заголовке назвать одним словом, а в реализации другим - такой бардак будет.
с нынешними IDE этот минус отпадает

Цитата Сообщение от 0x10 Посмотреть сообщение
И эти на каждом шагу торчащие const в плюсовом коде... Особенно когда они вылезают после объявления метода.
несогласен

Цитата Сообщение от 0x10 Посмотреть сообщение
Точки с запятой в конце определений классов - вообще пережитки прошлого, мусор в коде.
плюсую

Цитата Сообщение от 0x10 Посмотреть сообщение
Передача аргументов по const-ref - сколько джуниоров схлопотали линейкой по рукам за то, что забывали это делать?
ну тогда это недо-джуниоры какие-то

Если бы когда-то какие-то API делались не для Плюсов, если бы поддерживаемая программная система была бы написана не на Плюсах, если бы в учебной программе были бы не только Плюсы, если бы начинали программировать не с Плюсов.
Если бы сейчас поломали обратную совместимость...
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
14.07.2013, 13:27
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
никто бы не писал на Плюсах, если бы у них был выбор.
У меня есть выбор: Си, С++, Асм. Выбираю С++, но на Си тоже люблю писать. Разве этого не достаточно для выбора?
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.07.2013, 13:32
Цитата Сообщение от 0x10 Посмотреть сообщение
Описание классов в двух файлах - .h и .cpp - вообще кошмар. Это ж постоянно надо поддерживать согласованность имен. Я ведь могу параметр функции в заголовке назвать одним словом, а в реализации другим - такой бардак будет.
КьютКриэйтор умеет автоматически изменять сигнатуру. Но это единственная jetbrains-like фича, которую я у него видел.
Остальные аргументы какие-то слабые (и вообще, скорее плюсы, чем минусы). Ну разве что кроме этого
Цитата Сообщение от 0x10 Посмотреть сообщение
Это я еще молчу про наличие такой пакости как препроцессор, отсутствие нормальных модулей в языке и прочем уродстве.
Это потому, что с++ разрабатывается сообществом, а не одним вендором. А сообщество никак не может между собой договориться. Модули, концепты и прочее хотели включить еще в с++11, но в итоге не смогли придумать к ним нормальный стандарт, и оно не вошло даже в с++14.

Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Дефайны в глобальном пространстве имён определяются.
Непонятно. Имеется в виду контраст с "объявляются" ?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
14.07.2013, 13:37
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Дефайны в глобальном пространстве имён определяются.
Дефайны вообще не имеют представления о пространствах имен - код как текст, не более
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
14.07.2013, 13:42
Цитата Сообщение от diagon Посмотреть сообщение
Описание классов в двух файлах - .h и .cpp - вообще кошмар. Это ж постоянно надо поддерживать согласованность имен. Я ведь могу параметр функции в заголовке назвать одним словом, а в реализации другим - такой бардак будет.
Вообще-то h файлы для того и созданы, чтобы поддерживать согласованность в множестве срр файлов.
Ты либо пишешь функцию в срр файле и добавляешь её прототип во множество остальных срр файлов. (Этот подход вполне имеет право на жизнь)

Либо добавляешь прототип в один Н файл, и инклудишь его далее.

Для того и придумывалось, что срр файлы не должны почти ничего друг о друге знать.
0
14.07.2013, 13:50

Не по теме:

Все мои "аргументы" - не более, чем особенности языка, с которыми просто уживаешься. Воспринимать можно было ирочнично)

0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
14.07.2013, 13:52
Цитата Сообщение от diagon Посмотреть сообщение
Непонятно. Имеется в виду контраст с "объявляются" ?
Не, не надо выкапывать там глубинный смысл. Я имел в виду, что из-за вот этого:
Цитата Сообщение от Croessmah Посмотреть сообщение
Дефайны вообще не имеют представления о пространствах имен - код как текст, не более
их имена можно считать глобальными с точки зрения зарезервированности идентификаторов.

Короче, на них тоже распространяется правило "не начинать с подчёркивания".
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.07.2013, 14:05
Цитата Сообщение от 0x10 Посмотреть сообщение
особенности языка, с которыми просто уживаешься
Ну, там действительно есть плюсы.

Вот например, насчет семиколонны после фигурной скобки
C++
1
2
3
4
5
6
7
8
namespace my_namespace
{
class my_class
{
     //много кода (на несколько экранов)
 
};  //сразу видно, что это конец класса, а не функции или неймспейса или чего-либо еще.
}
Насчет области видимости - c# тоже поддерживает ::
Ну, здесь у меня объективных аргументов нету, зато есть D, в котором пытались решить эту "проблему". И мне как-то не очень понравилась одна точка на все случаи жизни.

Насчет указателей - как будто их в шарпе нету. И их знание не может быть лишним.

Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Короче, на них тоже распространяется правило "не начинать с подчёркивания".
Ну, я имел в виду, что если реализация использует такой дефайн в глобал скоупе, то переопределить его никак не получится. И в этом случае все имена, начинающиеся с подчеркивания автоматически подвергаются риску быть замещенными каким-то шальным дефайном. Ну и как следствие не могут использоваться в качестве идентификатора.
1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2013, 15:05
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Вообще-то h файлы для того и созданы, чтобы поддерживать согласованность в множестве срр файлов.
Ты либо пишешь функцию в срр файле и добавляешь её прототип во множество остальных срр файлов. (Этот подход вполне имеет право на жизнь)
делается это кстати тоже через набор костылей, видится, что ни настоящей модульности, ни выраженных иерархий классов (как в java/c#) на нашем веку в с++ не будет. даже pragma once в стандарт так и не включили, все также и развлекаемся с include guard'ами
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.07.2013, 15:07
Цитата Сообщение от alex_x_x Посмотреть сообщение
даже pragma once в стандарт так и не включили, все также и развлекаемся с include guard'ами
А можете привести пример актуального компилятора, не поддерживающего pragma once?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
14.07.2013, 15:20
Цитата Сообщение от diagon Посмотреть сообщение
А можете привести пример актуального компилятора, не поддерживающего pragma once?
насколько знаю - iar
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2013, 15:24
Цитата Сообщение от diagon Посмотреть сообщение
А можете привести пример актуального компилятора, не поддерживающего pragma once?
да почти все, но сие до сих пор не стандарт (почему?)
Jupiter, судя по вики поддерживается
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
14.07.2013, 15:41
И пример актуального компилятора, не поддерживающего оптимизацию инклюд-гардов. (Костыли надо поддерживать!)
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
14.07.2013, 15:46
Цитата Сообщение от diagon Посмотреть сообщение
привести пример актуального компилятора, не поддерживающего pragma once?
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
пример актуального компилятора, не поддерживающего оптимизацию инклюд-гардов.
да все это мелочи в сравнении с отсутсвием: нормального текста ошибок в шаблонах, минимального статического анализа, детекта UB, и т.д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.07.2013, 15:46

Что почитать перед тем как изучать C++?
Как устроен компьютер? как это все работает? Потому что как только сталкиваюсь с такими понятиями как байт, бит, ячейки памяти, процессор,...

Выучить C++: как и где можно более эффективнее выучить данный язык?
Хочу выучить C++, может кто подсказать, как и где можно более эффективнее выучить данный язык? Учу вот на таком сайте и тренируюсь на VS...

Сервер подвисает перед тем, как что-то открыть
Добрый день не давно стал сервер подвисать перед тем как, что то открыть думает бывает по пол минуты, даже когда пуск нажимаешь работает...

Выполнить код перед тем, как обрабатывать событие
Здравтсвуйте, допустим есть такой код $(".element").on("click", function(){ alert("111") }) Его мы оставляем как есть, внутри...

Посмотрите сайт, перед тем, как Платон посмотрит?
Приобрел домен www.infostart.ru, оказался ранее забаненным яндексом. Раньше на нем была другая информация и вообще другая тема, за что...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru