Задать вопрос
  • Установка stunnel какой порт использовать?

    @res2001
    stunnel это не HTTPS, это только S от него, HTTP там нет. Это и не ВПН, он просто связывает 2 TCP порта защищенным соединением.
    Если вам достаточно SSL, то можете просто использовать голый OpenVPN, т.к. его шифрование так же основано на SSL (OpenSSL), так же как и stunnel.
    Возможно, вам может понадобиться перевести OpenVPN на TCP (это делается правкой 1 параметра в конфиге) и перенастроить его на порт 443 (еще один параметр).
    Рекомендованный для OpenVPN протокол - UDP. На TCP есть определенные проблемы на плохих каналах связи.
  • Как добавить в CMD windows composer и php, как указано в OpenServer?

    @res2001
    Эмиль Рахматуллин, После того как добавите пути, cmd надо перезапустить, чтоб новое содержимое PATH подхватилось.
  • Как добавить в CMD windows composer и php, как указано в OpenServer?

    @res2001
    Что конкретно не работает? Приведите пример команды и ее результат.
    Подозреваю, что у вас просто нет нужных путей в переменной окружения PATH. А OpenServer добавляет эти пути.
    В этом случае при запуске команды будет сообщение что "команда не является внутренней или внешней командой ..."
    Если мое предположение верно, просто добавьте нужные пути вручную в переменную окружения PATH.
  • Что делает эта часть кода (выделено кругом)?

    @res2001
    Fango,
    вызывался уже в
    func(a)
    в main

    Все правильно, т.к. func принимает параметром экземпляр класса myclass, при этом при вызове func(a) внутри func создается локальная копия класса a. Для создания локальной копии вызывается конструктор копирования. Обычно, что бы не клонировать экземпляры классов без необходимости в функции передаются ссылки. Но нужно иметь ввиду, что изменяя экземпляр класса переданный по ссылке вы изменяете внешний экземпляр класса. А если вы изменяете копию, то изменения не коснуться внешнего экземпляра класса из которого сделана копия, а локальная копия будет уничтожена при выходе из функции.
  • Что делает эта часть кода (выделено кругом)?

    @res2001
    Fango,
    А почему выше при объявлении пишется ob, а тут obj?

    Скорее всего это просто опечатка.
    На самом деле "в паблик" это не экземпляр класса, а описание класса и описание методов. В описании так может содержаться и определение, но не обязательно. В вашем примере - только описание, а определение вынесено ниже за пределы описания. Ну так вот, в описании и определении методов (и обычных функций), могут не совпадать имена аргументов (параметров), главное, чтоб совпадали их типы. Более того в описании допускается вообще не указывать имена аргументов, а только типы. Например вот такое описание будет корректным:
    myclass(const myclass&);
    А экземпляр класса у вас находится в main():
    myclass a;
    a - это экземпляр класса myclass.
    Если вы там же в main объявите еще один экземпляр класса myclass следующим образом:
    myclass b(a);
    То будет вызван конструктор копирования, который должен будет проинициализированть свой класс на основе класса переданного в параметре.
  • Можно ли объединять два класса в общий производный?

    @res2001
    У вас описана еще более сложная ситуация, чем "простое" множественное наследование: у вас ромбовидное наследование. Это когда классы предки сами наследуются от одного класса. Это порождает дополнительные проблемы и, в принципе, если такая ситуация возникает, есть смысл пересмотреть архитектуру наследования.
    В вашем случае, возможно, лучший вариант наследование заменить агрегированием. Тогда в классе человек вы можете организовать вектор классов профессия и ваш человек сможет обладать несколькими профессиями.
  • В чем ошибка в программе?

    @res2001
    iamgrootyhuuu, Как "так"? Вы же не привели код.
  • Как происходит выбор реализации интерфейса?

    @res2001
    vasx3,
    из-за dependency injection, при котором не нужно передавать объект в параметрах

    Бред.
    Я не знаю что там у вас в симфони, но вы в любом случае должны передать объект, иначе функция не будет знать с чем она работает (синтаксическая ошибка проще говоря - вы не можете вызвать функцию имеющую параметр без параметра). Подозреваю, что в симфони вы просто явно не вызываете эти методы, вместо этого симфони сама это делает за вас и она сама внутри себя передает туда нужные объекты. Но это ничего не меняет.
  • В чем ошибка в программе?

    @res2001
    iamgrootyhuuu,
    как понять инструкции ввода, это какие?

    Например cin >> X;
    Эта конструкция будет читать ввод с клавиатуры и сохранит введенные данные в переменную Х.
    Что бы вывести значение переменной Х конструкция должна быть такой:
    cout << X << endl;
    https://en.cppreference.com/w/cpp/io/cin
    Купите книжку по плюсам.
  • Как происходит выбор реализации интерфейса?

    @res2001
    vasx3, При вызове функции Sportcar вы должны будете пердать ей параметр. Передадите Sportcar - будет получен Sportcar в виде ICarа, а передадите Bus - будет получен Bus в виде того же ICara. Все очень просто :)
  • Как происходит выбор реализации интерфейса?

    @res2001
    vasx3,
    не понятно, как правильно пользоваться интерфейсами

    Почему, собственно?
    Из вашего примера: startCar принимает ICar, почему же вы считает, что вы в starCar можете вызвать openDoor? Этого метода нет в ICar. В starCar доступно только то, что описано в ICar.
    Везде говорится, что необходимо отделять отдельные части приложения, использовать классы не напрямую, а через интерфейсы чтобы убрать зависимости.

    Правильно говорится. Делается это для минимизации зависимостей. Ваш startCar будет зависеть только от интерфейса, вы можете в дальнейшем еще 10 специализаций интерфейса сделать, а startCar останется неизменным.
    Но я не могу понять, как в случае использования интерфейсов я могу быть уверенным в соответствии получаемых данных.
    Получается как-то не прозрачно.

    Привыкайте.
    В компьютерах (и не только) сплошные черные ящики.
    Если вы не автослесарь, то вы толком не знаете, как едет ваша машина. Ну да, понятно, что бензин в движке сгорает (об этом в школе рассказывали) и из-за этого крутятся колеса. Но это как-то не прозрачно :)
  • Как происходит выбор реализации интерфейса?

    @res2001
    vasx3, А к примеру cout << "Hello world" в С++ не магия? Подберите аналоги из ваших ЯПов.
  • Как происходит выбор реализации интерфейса?

    @res2001
    vasx3, Эта дырка в знаниях никак не мешает понять ООП. Просто примите, что это так работает и идите дальше. Мне в свое время ни капли не мешало, что при изучении С++ я не знал как под капотом устроено наследование и виртуализация. Потом что-то сам додумал, что-то прочитал, хотя особой надобности в этих знаниях у меня нет и нигде это знание не пригодилось.

    В перечисленных вами языках я не в курсе как это реализовано. Предполагаю, что в C# примерно так же как и в плюсах, а PHP - интерпретируемый язык, тут вообще можно огороды городить.
  • Как происходит выбор реализации интерфейса?

    @res2001
    Как можно быть уверенным, что мне вернётся объект класса Bus, и что в нём будет метод openDoor?

    Никак. В вашем интерфейсе нет метода openDoor. Функция оперирующая интерфейсом имеет доступ только к методам объявленным в интерфейсе. Если нужно использовать openDoor, то вы должны принимать в параметре Bus, а не ICar.

    Но как происходит выбор класса который, в конечном итоге, возвращается в методе?

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

    @res2001
    coscocos,
    но такое выставлять как то стыдно

    Вы же только учитесь, в том что вы делаете ошибки при обучении нет ничего стыдного, все через это проходили.
    Кроме того вы можете выставлять не весь код, а только участок кода по которому задаете вопрос. Так же можно для вопроса специально написать коротенький тестовый пример и его выкладывать с вопросом.
  • Как составить программу для перемещения файлов в иной каталог?

    @res2001
    coscocos, 1. поддержка режима подсказки - видимо поддержка параметра /? на который будет выдаваться справочная страница по параметрам
    2. программа формирует коды завершения - в случае ошибки какой-то операции завершаться с кодом ошибки отличным от 0 (exit /b N)
    3. программа должна учитывать атрибуты файлов - видимо перемещать файлы только с указанными атрибутами. В каком-то виде xcopy это умеет. Узнать аттрибуты файлов можно командой attrib file.name (attrib /?)
    4. разбор и интерпретация командной строки (переменное количество параметров) - ну тут и так должно быть понятно. Через параметры командной строки вам надо получить каталог/файлы для переноса, набор аттрибутов файлов для переноса, ну и что-нибудь еще, что сами захотите
    5. и работа с конкретным каталогом (передается как параметр утилиты) - см.п.4

    В целом задание не сильно сложное, но для новичка придется попотеть.
    Тут за вас никто код писать не будет - политика не позволяет.

    А как это все учесть, я не знаю

    Учите мат.часть. Удивлен, что где-то учат батникам. Сейчас вместо них powershell обычно используют.
    Из ресурсов для обучения:
    1. На RSDN есть несколько статей "Уроки батаники"
    2. Все стандартные команды винды поддерживают опцию /? по ней выводят свою справку, в которой содержится масса полезных сведений. Даже такие команды как if и for имеют свою справочную страницу.
    3. "Серый форум" и forum.ru-board.com - есть разделы по батникам, там тусят продвинутые батаники, полно обсуждений, сложных вопросов, примеров, помогают в написании
  • Почему в оценке сложности алгоритма log n пишется без основания?

    @res2001
    Не знаю ответа.
    Но я думаю, что основание может быть разным в зависимости от алгоритма.
    Например в алгоритме поиска в бинарном дереве основание будет 2, потому что дерево бинарное.
    Если бинарное дерево заменить каким-нибудь другим, где из узла могут выходить 3 потомка, то основание будет 3 и т.п.
    В оценке не важны конкретные цифры, а важно то, что алгоритм работает с логарифмической сложностью, а не с N или N*N.

    И кстати, я иногда встречаю в оценках указание основания логарифма.
  • Как в c++ переписать целочисленные элементы из одного файла в другой?

    @res2001
    Олег Андреев, Конец файла возвращает метод eof(), а наличие ошибок good(), есть еще методы bad()и fail(), а так же приведение объекта потока к булевому типу.
    Смотрите тут: https://en.cppreference.com/w/cpp/io/basic_ios/eof
    В конце страницы есть табличка со сравнением различий всех методов проверки состояния. Выбирайте, какой вам больше по вкусу.
    Как правило чтение из файла оформляют так:
    while(in.good())
    {
       in.read()
    ...
    }