Ответы пользователя по тегу C++
  • Зачем использовать бессмысленные сеттеры/геттеры?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Причин может быть достаточно много.
    1. Что если сегодня поле расположено в виде закрытой переменной, а завтра будет доставаться из HTTP-ответа ?
    2. Что если сегодня оно в виде хранимого значения, а завтра станет вычисляемым?
    3. Что если сегодня оно в этом классе, а завтра решили перенести в другой, а чтобы не делать слишком большой рефакторинг пока решили оставить как есть?
    4. Что если сегодня это свойство этого класса, а завтра родительского?

    Причин множество! Геттеры и сеттеры спасают от головных болей.
    Ответ написан
    Комментировать
  • Gui под язык C++ альтернатива Qt?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Electron ? На С++ пишите NodeJS плагин , а на Html + JS + CSS фигачите GUI
    Ответ написан
  • C# или C++ для знающего C#?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вам всего 15 лет! Чего паритесь то? Детей кормить надо? Жену одевать, содержать надо? На квартиру зарабатывать надо?

    Нет же ! У вас времени дофига! Пробуйте как можно больше. Ищите себя. Если вас к чему-то тянет, то и не стоит себя отговаривать. Вот когда будет 25, тогда и начните фокусироваться в строго очерченном направлении, а до тех пор пробуйте и эксперементируйте!
    Ответ написан
    1 комментарий
  • Можно ли инициализировать статический массив алгоритмом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Возможно вы ищете метапрограммирование?
    Ответ написан
  • Веб-приложение на С++, реально?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Да. Реально. Но зачем?
    Каждому языку свой спектр задач и C++ в веб-разработку вписывается, но не там, где вы ищите. Посмотрите цикл про highload от mail.ru на youtube и будет понятнее где нужно использовать C++ в мире веб
    Ответ написан
    Комментировать
  • Учебный материал по работе с памятью?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вот вам вопросы, который помогут принять решение как работать с объектом.
    1. Когда известно какого размера объект? Во время компиляции или во время выполнения?
    2. Насколько большой по размеру объект? Стек имеет не слишком большую память и все не реально большое нужно или держать в памяти или работать с файлом на диске

    Чтобы дать ответ на второй вопрос нужно знать вашего пользователя. Абсолютно для всех никогда не получится написать код. Поэтому нужно знать в каких именно условиях будет работать ваш код.
    Ответ написан
    Комментировать
  • Есть ли смысл определять новые ключевые слова в c++?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    В чужой монастырь со своим уставом не ходят. (с) Не мое.

    Я к тому, что программируя на C++ нужно с помощью тех способов и идиом, которые привычны ЛЮБОМУ программисту. Самое интересное, имея в своем репертуаре большое кол-во идиом вы приходите к той мысли, что простор для творчества более чем обширен.

    dynamic, abstract : 1. Технически можно 2. Но не по плюсовы
    Ответ написан
    Комментировать
  • Стоит ли зацикливаться на непонятной теме?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Поступайте более гибко. Чуть чуть теории, чуть чуть практики. Не надо бросаться абсолютно все и вся зубрить и заучивать. Пишите! Уверяю, что Вы быстро поймете насколько освоили материал, который только что прочитали, если не откладывая сразу же начнете что-нибудь писать и попытаетесь применить. Программирование это искуство, иногда некоторые логичные вещи по началу не работают и глаза на лоб лезут "А почему?" и наоборот казалось бы тупейший и нелогичный кусок кода почему-то работает.

    чуть-теории - чуть-практики
    Ответ написан
    Комментировать
  • Возможно ли в C++ повторное выделение памяти в стеке под переменную?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вы наверное хотите получить такое:
    #include <iostream>
    using namespace std;
    
    struct Example{
    	int a;
    };
    
    int main() {
    	Example example{5};
    	cout << example.a << endl;
    	example = Example{101};
    	cout << example.a << endl;
    	return 0;
    }


    Другими словами у каждого user-defined типа есть конструкторы, деструкторы и операторы присвавания по-умолчанию.
    Ответ написан
    Комментировать
  • Можно ли с помощью shared_ptr объявлять массив int?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Может быть std::array?

    >>shared_ptr sh(new int[100]);
    1. Вы говорите, что будете хранить 1 int
    2. Вы создаете 100 штук int
    3. И результат п.2. присваиваете в п.1, хотя сказали что будете хранить один int

    Круто?
    Ответ написан
    1 комментарий
  • Когда использовать указатели на объекты при объявлении в C++?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. Способ это переменная создаваяемая на стеке.
    2. Это переменная создаваемая в динамической памяти. Если конечно Вы или "Ваш друг" с оператором new ничего не сделали.

    Динамическая память куда большего размера чем область стека
    Ответ написан
  • Какую книгу по С++ выбрать?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. Учиться использовать google. Этот вопрос на этом сайте уже так много раз задавали, что даже удивляешься терпению участников тостера
    2. По сути вопроса: Посмотрите по моим ответам, т.е. заглянуть в профиль. Я уже не раз на этот вопрос отвечал.
    Ответ написан
    Комментировать
  • Какую книгу посоветуете?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Сначала о самых главных навыках ЛЮБОГО программиста:

    1. Непрерывно улучшать чтение\письмо по-английски!
    2. Уметь искать ответы в google.com или др. поисковую технологию
    3. Всегда, всегда задаваться вопросом: "А может кто-то уже решил мою проблему?" и пользоваться навыком из п.2.

    По сути вопроса:
    1. Если опыта программирования нет, то я бы рекомендовал прочитать "C++ за 21 день" от Дж. Либерти
    2. Если опыт есть, то читать книгу Лафоре про Объектно ориентированное программирование на C++
    3. На этой стадии опыт написания кода уже есть, поэтому Стив Макконел с его Совершенным кодом
    4. После этого читаются правила от Скотта Майерса, но через призму скептицизма. На этом этапе уже должен быть достаточно опыта чтобы понять что вам подходит, а что нет
    5. Чтение Рефакторинга от Фаулера
    6. Только на этоп этапе читать Страуструпа. Читать вдумчиво. Читать так, чтобы каждое его слово и каждая его мысль была понята, прочувтвована

    Практикуясь той или иной фиче языка, идиоме рекомендую на реализациях алгоритмов сортировок, структур данных и всем что связано с алгоритмами.

    Да, и читать надо по-умному! Для программиста чтение проф.литературы означает "Непрерывно вбивать код" и пытаться применить хотя бы в каком-нибудь 'hello world'-е изучаемой технологии или языке или идиоме. Только постоянная долбежка позволяет вбить в память пальцев нужные и правильные вещи на уровне инстинктов, которые экономят время при создании больших программных проектов.

    UPD:
    Один из нюансов чтения проф.литературы заключается в том, что почти никогда нет возможности прочитать с первого раза! Будьте терпеливы, т.к. наверняка Вам придется перечитывать как минимум абзац, не редкостью будет перечитывание 2-3 страниц, а иногда и целой главы с начала. Процесс проф.литературы - итеративный. С первого раза формируется "общее" представление с "дырыми" по прочитанному материалу. Повторное чтение закрывает часть этих "дыр". А паралельная практика при этом дает еще ясное понимание того как надо и как не надо и где именно у Вас не получается.
    Ответ написан
    3 комментария
  • Есть ли в C++ библиотечка, которая позволяет каким то образом быстро сжимать массив бинарных данных перед передачей по какому либо интерфейсу?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    pixik: Встроенных в стандартную библиотеку нет, но есть сторонние библиотеки. Но достаточно быстро ищется в гугле, к примеру LZMA есть, APlib есть и др
    Ответ написан
    2 комментария
  • C++ приложение, защита, серийные номера - откуда подойти?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Если под Windows, то купи какой-нить протектор, к примеру Enigma Protector. Изучи его API. Вставь в коде его вызовы и не парься! ;)
    Ответ написан
    6 комментариев
  • Google Test Framework: Как частично отключить параметризованный тест?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Может Вам поможет это: GoogleTest: How to skip a test? ?
    Ответ написан
    Комментировать
  • Чем лучше всего визуализировать граф в С++/CLI?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Оформить в виде консольной утиллиты, выводить в STDOUT и подавать в python-Скрипт использующий matplotlib. К примеру
    Ответ написан
    Комментировать
  • Какую лучше взять книгу по C++ для начинающего?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Есть подобная тема Книга Стивена Прата по C++ для начинающего?. Кстати. Перед тем как учиться C++ рекомендую улучшить навыки по использованию google. Ибо экономит Ваше же время! К примеру это Search Operators.

    З.Ы.: Про гугл не стебусь, а на полном серьезе. Если меня забанят в гугле это будет один из самых печальных моих дней
    Ответ написан
    Комментировать
  • Как записать в set?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    То что Вам надо называется "Как разбить строки используя свой собственный делимитер". В гугл это задается примерно так:
    1. Открыть google.com
    2. Написать "C++ how to split string"
    3. Нажать на Enter

    У меня получилось найти How to split a string in C++

    P.S.:
    В современном C++11 появился модуль по работе с регулярными приложениями. Я к тому что текст можно очень серьезно анализировать, если Вы можете писать регулярки ;)

    Факты о STL-контейнерах:
    * Позволяют вернуть итераторы
    * Позволяют создать самих себя на основе итераторов

    Имея вектор можем вернуть его итераторы. Имея итераторы от вектора можем создать множество на основе итераторов от вектора
    Ответ написан
    Комментировать
  • Какую библиотеку C/C++ выбрать для рисования графиков функции?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Tufitko
    Вам уже Армянское Радио советовал про Unix-way. Можно поступить немножко по-другому. Вы пишите консольную программу, печатающую на stdout в виде csv-формата. Далее с помощью python-а и библиотеки к нему matplotlib.org/ получаете более дешевый в разработке и в тоже время кросс-платформенный вариант ;)
    Ответ написан
    Комментировать