13 / 13 / 2
Регистрация: 17.05.2012
Сообщений: 121
1

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

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

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

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

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

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

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

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

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

Не по теме:

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

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

Не по теме:

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


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

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

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

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

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

Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Дефайны в глобальном пространстве имён определяются.
Непонятно. Имеется в виду контраст с "объявляются" ?
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
14.07.2013, 13:37 30
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Дефайны в глобальном пространстве имён определяются.
Дефайны вообще не имеют представления о пространствах имен - код как текст, не более
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
14.07.2013, 13:42 31
Цитата Сообщение от diagon Посмотреть сообщение
Описание классов в двух файлах - .h и .cpp - вообще кошмар. Это ж постоянно надо поддерживать согласованность имен. Я ведь могу параметр функции в заголовке назвать одним словом, а в реализации другим - такой бардак будет.
Вообще-то h файлы для того и созданы, чтобы поддерживать согласованность в множестве срр файлов.
Ты либо пишешь функцию в срр файле и добавляешь её прототип во множество остальных срр файлов. (Этот подход вполне имеет право на жизнь)

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

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

Не по теме:

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

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

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

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

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

Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Короче, на них тоже распространяется правило "не начинать с подчёркивания".
Ну, я имел в виду, что если реализация использует такой дефайн в глобал скоупе, то переопределить его никак не получится. И в этом случае все имена, начинающиеся с подчеркивания автоматически подвергаются риску быть замещенными каким-то шальным дефайном. Ну и как следствие не могут использоваться в качестве идентификатора.
1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2013, 15:05 35
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Вообще-то h файлы для того и созданы, чтобы поддерживать согласованность в множестве срр файлов.
Ты либо пишешь функцию в срр файле и добавляешь её прототип во множество остальных срр файлов. (Этот подход вполне имеет право на жизнь)
делается это кстати тоже через набор костылей, видится, что ни настоящей модульности, ни выраженных иерархий классов (как в java/c#) на нашем веку в с++ не будет. даже pragma once в стандарт так и не включили, все также и развлекаемся с include guard'ами
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
14.07.2013, 15:07 36
Цитата Сообщение от alex_x_x Посмотреть сообщение
даже pragma once в стандарт так и не включили, все также и развлекаемся с include guard'ами
А можете привести пример актуального компилятора, не поддерживающего pragma once?
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
14.07.2013, 15:20 37
Цитата Сообщение от diagon Посмотреть сообщение
А можете привести пример актуального компилятора, не поддерживающего pragma once?
насколько знаю - iar
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2013, 15:24 38
Цитата Сообщение от diagon Посмотреть сообщение
А можете привести пример актуального компилятора, не поддерживающего pragma once?
да почти все, но сие до сих пор не стандарт (почему?)
Jupiter, судя по вики поддерживается
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
14.07.2013, 15:41 39
И пример актуального компилятора, не поддерживающего оптимизацию инклюд-гардов. (Костыли надо поддерживать!)
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
14.07.2013, 15:46 40
Цитата Сообщение от diagon Посмотреть сообщение
привести пример актуального компилятора, не поддерживающего pragma once?
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
пример актуального компилятора, не поддерживающего оптимизацию инклюд-гардов.
да все это мелочи в сравнении с отсутсвием: нормального текста ошибок в шаблонах, минимального статического анализа, детекта UB, и т.д.
1
14.07.2013, 15:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2013, 15:46
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru