Задать вопрос
  • Как обратиться к объекту, вызвавшему событие?

    Обычно тащим данные из sender'а. То есть ((Button)sender).Content. Только он возвращает по-умолчанию тип string.
    Ответ написан
    4 комментария
  • Как происходит работа на сервере при использовании Angularjs?

    Через Ajax. У Angular 1 есть обертка над ним - вервис $http
    Ответ написан
    Комментировать
  • Является ли nodejs полноценным сервером?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Сам по себе node.js - это всего лишь платформа для написания приложений на JS, в которой есть некоторое api написанное частично на JS, частично на C++
    Полноценным веб-сервером нода не является, но содержит много чего из коробки для упрощения жизни так сказать
    Если Вы не сильны в спецификациях HTTP, TCP, в сетях и тд, то проще поставить перед нодой nginx как реверси прокси
    Хотя у меня лично написан почти полноценный и весьма производительный веб-сервер на ноде, в отдаче статики совсем чуть-чуть уступает по производительности nginx, но в отдаче динамики резко обходит возможные альтернативы с nginx за счет отсутствия оверхеда на проксирование, если интересна эта тема - начать стоит с изучения RFC-7233
    Ответ написан
    4 комментария
  • Как получить доступ к полям и методам неизвестного объекта?

    @Mercury13
    Программист на «си с крестами» и не только
    Это значит: объект класса B должен иметь (или не иметь) «товарища» класса C. Иметь не во владении, а по ссылке. А лучше не класса C, а его подмножества, реализованного как интерфейс (я его назвал IC). На A вообще чхаем — его задача собрать B и C в нужном виде, и всё.

    Смотрите шаблон проектирования Dependency Injection.

    class IC {   // interface
    public:
      virtual int getC() = 0;
      virtual ~IC() = default;
    };
    
    class C : public IC {
    public:
      int getC() final { return 42; }
    };
    
    class B {
    public:
      IC* buddy() const { return fBuddy; }
      void setBuddy(IC* aBuddy) { fBuddy = aBuddy; }
      void someJob() const { if (fBuddy) std::cout << fBuddy->getC() << std::endl; }
    private:
      IC* fBuddy = nullptr;
    };
    
    class A {
    public:
      A() { b.setBuddy(&c); }
    private:
      C c;
      B b;
    }

    Специально для тех, кто на Си++: в таком виде A неперемещаем из-за указателя c.fBuddy. Есть много способов исправить это — например, подправить конструктор копирования и операцию «присвоить» класса A.
    Ответ написан
    3 комментария