Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.64
artemkotok
-37 / 21 / 0
Регистрация: 31.08.2013
Сообщений: 1,731
#1

Что легче C++? - C++

04.01.2015, 09:42. Просмотров 3698. Ответов 81
Метки нет (Все метки)

Какой язык программирования клиентский легче чем C++?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2015, 09:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что легче C++? (C++):

Что легче изучать Visual C++ или С++? - C++ Builder
Что легче изучать Visual C++ или С++?

EXE из C++ Builder легче, чем такой же в Delphi? - C++ Builder
Пустой, консольный проект, максимально пожатый всякими настройками... Ну там Use dynamic RTL и так далее. В Delphi этой настройки нет...

Что надо прописать в батон , что бы с мемо1 вывести в мемо2 только числа , что есть в мемо1 - C++ Builder
Что надо прописать в батон , что бы с мемо1 (который состоит с текста, символов, знаков"+"и"-") вывести в мемо2 только числа , что есть в...

Запуск процесса что лучше? что быстрее? что надежнее? Winexec CreateProcess ShellExecute - C++ WinAPI
Здравствуйте , какую функцию лучше использовать для программного запуска процесса winexec CreateProcess ShellExecute ? В чем...

Что нужно выучить, чтобы легче понять C++? - C++
Что для этого нужно сделать,может выучить какой-нибудь другой язык?Мне говорили что нужно сначала выучить паскаль и html потом будет просто...

Каким образом легче выучить c++ - C++
Как легче понять и выучить язык с++

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
hoggy
6532 / 2712 / 469
Регистрация: 15.11.2014
Сообщений: 5,992
Завершенные тесты: 1
05.01.2015, 23:08 #46
Цитата Сообщение от Kastaneda Посмотреть сообщение
Чем опасен следующий код
C++
1
2
3
4
operator int () 
{
* * return *this;
}
Вы имеете ввиду бесконечную рекурсию?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
struct some
{
    operator size_t()const
    {
        //временная переменная нужна, что б не нарушался strict aliasing
        auto* t = reinterpret_cast<const size_t*>(this);
        return  *t;
    }
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    some s;
    
    size_t v = s;
    
    
    std::cout << "v = " << v<< std::endl;
    
    
}
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
05.01.2015, 23:10 #47
Цитата Сообщение от Avazart Посмотреть сообщение
Для замены есть рефакторинг или если массово можно c помощью Notepad++, ну и вероятно с настройками можно поиграться это вообще не проблема. И вероятно открою секрет преобразования проходят неявно между строками.
И я Вам открою секрет - там ОЧЕНЬ много "неявных глюков" на неявном преобразовании! И не зря это переводили. Все знали как это болезненно и просчитали все варианты. Но кирилица иногда терялась заменяясь на кривые символы или просто "?" при работе. Причем обычное TLabel.Caption не корректно принимало AnsiString. Не говоря о более тонких и сложных компонентах.

Цитата Сообщение от Avazart Посмотреть сообщение
Самое тупое решение, от него и проблемы, полагаю что и базы висели как раз из-за кривых рук и жмотства начальства.
Вообще-то никто нигде не висел! И проблем небыло! И до сих пор программа на этой "самопальной" базе работает. Просто на тот момент базы были кривыми и кроме как с DBE не работали. А это на маленьком файле в 100 Кб заставляло таскать дистрибутив на мегабайт-два с движком под базу. Это было еще во времена 3хдюймовых дискет и диалапа.

Цитата Сообщение от Avazart Посмотреть сообщение
А зачем его переучивать? На пенсию и нанять новых...
Добрый вы... А если бухгалтер - близкий родственник заказчика. А если заказчик платит только за решение проблем бухгалтера, а не его замену. Бывает и такое! Слышал что вся военная техника в америке, вплоть до космических и атомных ракет работает на языке АДА. И не смотря на его ограниченность, сложность и неудобство инструментов, американцам проще нанимать редких знатоков этого древнего языка, чем перепрошивать чипы с 20летней гарантией на новые релизы С++ или явы...

Цитата Сообщение от Avazart Посмотреть сообщение
Но прожорливость и тормознутость явы всем известна. Тут разве что для "клиента" яву можно использовать что бы кроссплатформенно.
Я уже писал выше, но иногда нужны БЫСТРЫЕ решения. Когда важен срок сдачи, а не возможности программы на расширение. У меня есть PHP сервер обрабатывающий целых 10 пользователей. Кода там уже почти на мегабайт. Об оптимизации еще даже не думал. Если повысить качество хостинга, можно будет расширить и на 100-300 пользователей. От 300-500 уже нельзя будет просто повышать стоимость хостинга и прийдется переписывать/перебирать коды. Но на 10 - вполне шустро работает. И хостинг грузит не больше чем на 5% (другим сайтам остается). Знаю точно, что если написать правильно - на яве будет работать на порядки быстрее чем на PHP - там буферизировать запросы можно, которые PHP забывает после окончания каждого запроса. Но на РНР я написал протокол за неделю (по часу в день). На яве бы писал месяц. А на С++ я бы писал его год... Конечно На С++ после этого протокол бы выдерживал и 100тысяч, но пока пользователей меньше 100 - не хочу об этом думать!

Цитата Сообщение от Avazart Посмотреть сообщение
Это одно и тоже ибо Indy одно и тоже и там и там.
А вот и нет! Компилятор другой! Делфи раз в 5-10 быстрее собирает свои примеры чем борланд си.

Цитата Сообщение от Avazart Посмотреть сообщение
Простой вопрос у вас там китайский в проекте использовался?
Я вообще фигею как представляю как вы файловые базы из анси гнали в юникод.
Нет, но "потенциал" программы вырос! После этого можно стало перевести на любой язык без заморочек с кодировкой. Начиная с 3х лишних букв на украинском, до немецких апосрофов.
А перевод не был сложным. Написали простую утилиту перекодирования для старых локальных баз. А вообще база через инет подкачивалась - перезакачали заново уже в новый формат - новые клиенты даже не заметили разницы.
Avazart
Эксперт С++
7145 / 5322 / 276
Регистрация: 10.12.2010
Сообщений: 23,557
Записей в блоге: 17
05.01.2015, 23:23 #48
Цитата Сообщение от Tester64 Посмотреть сообщение
И я Вам открою секрет - там ОЧЕНЬ много "неявных глюков" на неявном преобразовании! И не зря это переводили. Все знали как это болезненно и просчитали все варианты. Но кирилица иногда терялась заменяясь на кривые символы или просто "?" при работе. Причем обычное TLabel.Caption не корректно принимало AnsiString. Не говоря о более тонких и сложных компонентах.
Да нет там никаких глюков, все очевидно. Проблемы могут быть только при смене локалей.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
05.01.2015, 23:37 #49
Цитата Сообщение от hoggy Посмотреть сообщение
Вы имеете ввиду бесконечную рекурсию?
Да, только чтоб догадаться в чем проблема мне пришлось накидать простой пример и запустить его, ибо сходу додуматься сложно.

Это я к вопросу о сложности языка. В той же Java подобный код (с неочевидным поведением) сложно представить.
hoggy
6532 / 2712 / 469
Регистрация: 15.11.2014
Сообщений: 5,992
Завершенные тесты: 1
05.01.2015, 23:41 #50
Цитата Сообщение от Kastaneda Посмотреть сообщение
Да, только чтоб догадаться в чем проблема мне пришлось накидать простой пример и запустить его, ибо сходу додуматься сложно.
Но однако ж, если запустить - cl (msvc) сразу же подскажет про бесконечную рекурсию.

Я как то раз погорел вот на такой простой штуке:
C++
1
2
3
4
void some::foo()
{
      static_cast<other>(*this).foo(); 
}
Здесь нужно было обратить внимание: каст всегда есть запуск конструктора копии.
В данном случае будет создан временный объект, который помрет тут же,
как только завершится время жизни выражения...

Это все - не более чем "тесты на внимательность".
Имхо, это не делает язык сложным.


Цитата Сообщение от Kastaneda Посмотреть сообщение
В той же Java подобный код (с неочевидным поведением) сложно представить.
Я могу понять, как ничайно можно допустить подобную ошибку.

Но я не могу понять, как человеку, который сам же и написал пользовательское приведение, может быть внезапно не очевидным принцип действия этого самого приведения.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
05.01.2015, 23:52 #51
Цитата Сообщение от hoggy Посмотреть сообщение
Этого списка вполне достаточно, что бы начальную базу с++ учить по диагонали.
Потому что после этих языков множество материала уже покажется знакомым.
А я и не говорю что они не знакомы. Любую программу я начал "читать со словарем". Но даже привыкнув к концепции h/cpp я не понимаю куда копать когда мне нужно написать сервер на сокетах... Накачал уже кучу учебников, получил десятки советов на форумах, но они слишком часто взаимоисключающие! Учебники советуют либо
#include <winsock.h> //не забываем подключить ws2_32.lib
либо другие подобные либы с разными названиями lib/wrapsock.c, utp.h, unp.h, etcp.h и еще несколько... уже задолбался собирать коллекцию возможных библиотек отвечающих за сокеты под разные платформы(линуксы, винду, юниксы) и компиляторы. Некоторые советуют Qt - там "все нужное есть" и "простой сервер на нем можно написать", но результат будет больше 11Мб. Кто-то советует буст и другие аналогичные сборники.
Ничего подобного у меня никогда не возникало в Делфи! На любой вопрос я получал либо однозначный ответ - лучше ... ничего пока не придумали, либо получал таблицу вариантов с описанием каждого, плюсами и минусами каждой технологии...

Цитата Сообщение от hoggy Посмотреть сообщение
Вы предлагаете начать танцевать ещё не научившись ходить?
Тогда я не удивлен, что у вас сложности с плюсами.
Удивляет как вы вообще хоть что нибудь смогли осилить при таком подходе.
Есть подозрение, что ваше знакомство с языками носит весьма поверхностный характер,
и не продвинулось дальше новичкового уровня.
Отсюда и сложности в освоении.
Цитата Сообщение от hoggy Посмотреть сообщение
Есть подозрение, что вы - дельфинист.
Причем весьма-весьма посредственный.
Не судите, да...
Не вам оценивать мой уровень, а моим клиентам! А они оценили мои познания в каждом из мной освоенных языков!

Мне нужен был протокол обмена на РНР - я сел за язык и написал протокол. Я не использовал и даже не изучил ООП для PHP. Но результат - протокол работает! Что еще нужно? После 5го удачного проекта я для себя решил что язык я уже достаточно освоил - уже не полный новичок!
Мне надо было написать программу под андроид - я ее написал. И при этом не использовал больше 90% тем из учебника по андроиду. Но программа работает! Большинство игро-писателей под андроид не знает как работают сокеты и как устроить сложный запрос к базе данных. Но при этом являются гуру в написании игр. А я написав несколько сложных графических подвижных элементов под андроид не знаю основ использования OpenGL в андроиде.
Любой дельфинист начинал к кнопко-накидывания! И я тоже! И первые 2-3 года мне этого даже хватало для работы. 1С на 60-70% и сейчас на этом построен, но математика там совсем другого уровня чем в обычных языках. Когда-то писал программу под фокспро месяц. Потом за ночь изучив с нуля 1С смог ее полностью переписать(за 10-12 часов). И при этом не уходя дальше простых конструкций. Значит ли после этого что я знаю язык - конечно нет! Я его узнаю лишь после того как узнаю больше 50% большинства его технологий! Когда про каждую его тему буду хоть что-то знать. И если не саму технологию, то хотя-бы метод получения информации для начала входа в эту технологию... Про С++ я пока даже надежных "точек входа" не нахожу...
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
05.01.2015, 23:53 #52
Цитата Сообщение от hoggy Посмотреть сообщение
это не делает язык сложным.
Имхо - как раз делает, но не только это. Например пишу на Java - в голове нужно держать только "все передается по ссылкам, а ссылки передаются по значению" и "всегда закрывай открытые файлы". Все, этого достаточно. В то же время я не берусь здесь написать все, что нужно держать в голове для ежедневного кодинга на С++.
Освоить синтаксис и сопутсвующие вещи можно относительно быстро (особенно если это не первый язык), но вот учится обходить грабли и переступать через подводные камни можно годами.
Avazart
Эксперт С++
7145 / 5322 / 276
Регистрация: 10.12.2010
Сообщений: 23,557
Записей в блоге: 17
06.01.2015, 00:01 #53
Цитата Сообщение от Tester64 Посмотреть сообщение
А вот и нет! Компилятор другой! Делфи раз в 5-10 быстрее собирает свои примеры чем борланд си.
Хз я ни разу не замечал, если и есть разница неощутима.

Добавлено через 1 минуту
Цитата Сообщение от hoggy Посмотреть сообщение
Имхо, это не делает язык сложным.
Для языка в котором есть ссылки и указатели помимо обычных типов это очевидно.
C++
1
static_cast<other*>(this)->foo();
Добавлено через 5 минут
Цитата Сообщение от Tester64 Посмотреть сообщение
Нет, но "потенциал" программы вырос! После этого можно стало перевести на любой язык без заморочек с кодировкой. Начиная с 3х лишних букв на украинском, до немецких апосрофов.
А перевод не был сложным. Написали простую утилиту перекодирования для старых локальных баз. А вообще база через инет подкачивалась - перезакачали заново уже в новый формат - новые клиенты даже не заметили разницы.
Ага и при этом БД не подходят, и жалуемся на юникод.
К примеру что мешало разместить базу на сервере, и вместо закачки делать коннект к ней, тот же MySQL , Oracle.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
06.01.2015, 00:01 #54
Цитата Сообщение от hoggy Посмотреть сообщение
Но я не могу понять, как человеку, который сам же и написал пользовательское приведение, может быть внезапно не очевидным принцип действия этого самого приведения.
Речь не об этом конкретном приведении. Неочевидного поведения в С++ очень много. Да и самому в данном конкретном случае легко накосячить

C++
1
2
3
4
5
6
7
8
9
10
11
class Foo
{
public:
    operator int()
    {
        return *this; // i expected bar value, but shit happens
    }
 
private:
    int bar;
};
понятно, что ошибка быстро себя проявит и будет исправлена, но все же.
hoggy
6532 / 2712 / 469
Регистрация: 15.11.2014
Сообщений: 5,992
Завершенные тесты: 1
06.01.2015, 00:07 #55
Цитата Сообщение от Tester64 Посмотреть сообщение
Я не использовал и даже не изучил ООП для PHP. Но результат - протокол работает! Что еще нужно?
Цитата Сообщение от Tester64 Посмотреть сообщение
Про С++ я пока даже надежных "точек входа" не нахожу...
Вы мне моего брата напоминаете.
Он весьма основательно изучил php и иже и с ним.
То бишь его основной конек - это работа с вэбом, базы данных и тп.
А потом полез на с# и c++.

При этом ему было банально лень тратить время на основательное изучение.
Ему хотелось изучать материал постольку-поскольку прямо по ходу дела.

И что касается с++, единственное, в чем я ему помог - прикрутил boost к плюсовому хэлло-ворлду.
А дальше он за пару часов завел "чат" по официальным примерам boost.asio.
Причем клиент на шарпе. А сервер - на плюсах.
Не заметил, что бы он при этом испытывал какие то особые сложности.

И вот что я вам скажу: реально, с опытом работы на других языках, вполне возможно начать решать задачи на плюсах практически и без подготовки.

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

А что касается технологий - они ортогональны языкам.
Грубо говоря, винапи и на паскале и на плюсах, и на жаве - везде винапи.

Имея опыт работы с винапи на паскале,
на плюсах вы уже ничего существенно нового для себя не откроете.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.01.2015, 00:08 #56
Цитата Сообщение от Avazart Посмотреть сообщение
Хз я ни разу не замечал, если и есть разница неощутима.
Тонкостей просто не помню. БорландС пробовал лет 7-8 назад. Может что-то и поменяли, но много версий ничего не менялось. Делфи имеет какой-то жутко-шустрый алгоритм сборки. Даже большие программы у меня редко собирались дольше 3х-4х секунд после изменения в одном из сотни модулей/юнитов. В MinGW под консоль даже простая программа редко собирается быстрее 5-7 секунд. БорландС помню думал до 30 секунд на пустой программе (окошко даже без кнопок). Деталей не помню, но где-то слышал что это связано с "количеством проходов" компилятора. Кажется в Делфи их всего два. Еще лет 8-10 назад для себя решил что Борланд это и не си и не делфи. Плохой для обоих языков. Даже для желающего "мягко" перейти на С++ не подходит (я ради этого его начинал изучать).
hoggy
6532 / 2712 / 469
Регистрация: 15.11.2014
Сообщений: 5,992
Завершенные тесты: 1
06.01.2015, 00:16 #57
Цитата Сообщение от Kastaneda Посмотреть сообщение
Имхо - как раз делает, но не только это. Например пишу на Java - в голове нужно держать только "все передается по ссылкам, а ссылки передаются по значению" и "всегда закрывай открытые файлы". Все, этого достаточно. В то же время я не берусь здесь написать все, что нужно держать в голове для ежедневного кодинга на С++.
Я повторю ещё раз: с++ объёмный, но не сложный.
Все те элементы кодинга о которых вы говорите - их множество, но они простые.

Количество не есть качество.

Представьте себе простейший код на бейсике. Все функции очень простые. Но их очень много.
Кодовая база занимает порядка 200 мегабайт исходного кода.

Вроде бы ничего сложного нет, но из-за объемной кодовой базы освоение такого проекта займет время.

Так же и с плюсами - ничего сложного нет, но из-за обилия разных возможностей, его освоение занимает время.





Цитата Сообщение от Kastaneda Посмотреть сообщение
Освоить синтаксис и сопутсвующие вещи можно относительно быстро (особенно если это не первый язык), но вот учиться обходить грабли и переступать через подводные камни можно годами.
Я конечно понимаю - в языке есть ряд нюансов в ряде случаев.
Но не могу вспомнить ни одной грабли, которая была бы не из области ошибок новичков.
Avazart
Эксперт С++
7145 / 5322 / 276
Регистрация: 10.12.2010
Сообщений: 23,557
Записей в блоге: 17
06.01.2015, 00:19 #58
Цитата Сообщение от Tester64 Посмотреть сообщение
Еще лет 8-10 назад для себя решил что Борланд это и не си и не делфи.
Хз что вы тут хотели сказать, но если речь про С++Builder то да он мутант и позволяет использовать код как на С++ так и Delphi и делать жуткий микс, и это скорее плюс чем минус если ориентироваться на быстроту разработки и маленькие приложения.

Добавлено через 2 минуты
Цитата Сообщение от Tester64 Посмотреть сообщение
(я ради этого его начинал изучать).
Так там нечего изучать в принципе. Код плюсовый, библиотеки делфовые.
hoggy
6532 / 2712 / 469
Регистрация: 15.11.2014
Сообщений: 5,992
Завершенные тесты: 1
06.01.2015, 00:25 #59
Цитата Сообщение от Avazart Посмотреть сообщение
Для языка в котором есть ссылки и указатели помимо обычных типов это очевидно.
C++
1
static_cast<other*>(this)->foo();
При работе - да.
Однако в тестах на внимательность можно запросто прошляпить какой ни будь ляп.
Однако тест на внимательность - не показатель.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.01.2015, 00:45 #60
Цитата Сообщение от Avazart Посмотреть сообщение
>>(я ради этого его начинал изучать).
Так там нечего изучать в принципе. Код плюсовый, библиотеки делфовые.
Были проекты на Делфи. Мысль была:
1) Переписать проекты с Делфи на Борланд с++. Там много похоже - не тяжело будет.
2) Переписать с БорландС++ на MSVC++. С++ он и в африке С++...
ща-а-ас! Вместо 1-3секунд до запуска получил 20-30 (это кажется дольше чем в MSVC). Совместимость классов - минимальная, хотя внешне похоже. А совместимости с MSVC вообще нет...
Половина компонент даже из одной версии делфи-борландС потерялись или получили другие названия методов. Результат (ЕХЕ) стал больше, но самое страшное - он теперь требовал таскать с собой какие-то библиотеки. При том что комп у меня был только один (и виртуальных машин тогда небыло), то узнать какие dll необходимы приходилось лишь подбором - таскать на флопиках в универ и тестить там. После 3-4го похода я понял что явно ошибся подхдом к изучению С++...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2015, 00:45
Привет! Вот еще темы с ответами:

Подскажите плз (на каком языке программирования легче писать ПК игры?) - C++
Извините времени нету искать информацию в поисковиках . Подскажите, на каком языке программирования легче писать ПК игры. На с++ или яве...

Символьные строки (верно ли, что существуют такие натуральные i и j, что 1 < i < j < n и что si совпадает с s(i+1), а sj совпадает с s(j+1)) - C++
Даны символы s1, s2, … Известно, что символ s1 отличен от восклицательного знака и что среди s2, s3,. .. есть по крайней мере один ...

Что это за знак >> прочитал что это сдвиг вправо? что он делает - C++
int d=6, c=5,f; f = d &gt;&gt; c; cout&lt;&lt; f; вывод 0

Что сложнее и что легче при написании WPF приложений под Desktop и Metro UI - C# WPF
Здравствуйте форумчане. У меня вопрос или быть точнее прошу совета. Не скажу что я бывалый программист, но знания какие то есть. Так вот,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2015, 00:45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru