Прежде всего позвольте мне сначала уточнить, что нижеприведенные мысли являются исключительно моими личными мнениями и из-за моих ограниченных знаний. Я не собираюсь говорить, что C ++ не крутой.
Я программирую на C ++ уже около года, и я думаю, что у него действительно есть несколько интересных функций. Тем не менее, я чувствую себя немного опустошенным и разочарованным, поскольку на самом деле я не выучил «изменяющих сознание» вещей из C ++ с точки зрения человека, который, как оказалось, ранее изучал Java (как первый язык).
Согласно многим сообщениям, которые я читал, люди предпочитают C ++, так как он быстрее. Для такого программиста, как я, который раньше не программировал приложения, критичные ко времени, у меня еще не было шанса оценить это.
Пока что все, что я узнал, мне кажется, все о синтаксисах. Вот как мы пишем класс на Java, а вот как пишем его на C ++. Это как делать наследование в Java, как это делать в C ++ и так далее. (Я знаю, множественное наследование - это круто, но для меня это не меняет взгляд. Я думаю, что было бы здорово иметь возможность ответить, почему Java не поддерживает / не поддерживает множественное наследование, что должно быть более общим чем одиночное наследство).
Как-то для меня все это всего лишь синтаксисы, и мой взгляд, похоже, не расширился после написания кода на C ++. Я думаю, что моя проблема в том, чтобы писать программы на C ++ с "Java-умом". Что я действительно хочу, так это, как полагают многие, изменить свое мышление после изучения нового языка. Я еще не достиг этого с моим C ++.
Я также могу написать пару небольших программ на Python. Тем не менее, я боюсь узнать больше об этом, что касается меня, опять же, это будет просто изучение нового синтаксиса, нового способа делать вещи, которые просто отличаются, без знания причин.
Я планирую изучать C, чтобы действительно узнать вещи. Я думаю, что это будет довольно "вовлекающий" язык.
Дайте мне знать, что вы думаете, и, пожалуйста, дайте мне несколько советов.
PS: Кстати, в C ++ есть один конкретный вопрос, который я хочу подтвердить. В C ++ запись следующим образом неэффективна, если я прав:
private A computeAndReturnA(){...}
Вместо этого напишите это как:
private void computeAndReturnA(A& a){...}
как и в первом случае, возвращаемые значения копируются (когда мы присваиваем b = compute ...) и вводят некоторые недостатки? (Я полагаю, что в Java 1-й путь понятен по смыслу и эффективен, так как передает все по ссылке)