Окно предупреждения JavaScript с подтверждением при нажатии кнопки

Это зависит от масштаба вещей. По большей части это - просто пара проверок и некоторых, указатель разыменовывает. В большинстве реализаций, наверху каждого объекта, который имеет виртуальные функции, существует указатель на vtable, которое содержит список указателей на все реализации виртуальной функции на том классе. Я предположил бы, что большинство реализаций будет использовать это для любого хранилища другой указатель на type_info структуру для класса.

, Например, в псевдоC++:

struct Base
{
    virtual ~Base() {}
};

struct Derived
{
    virtual ~Derived() {}
};


int main()
{
    Base *d = new Derived();
    const char *name = typeid(*d).name(); // C++ way

    // faked up way (this won't actually work, but gives an idea of what might be happening in some implementations).
    const vtable *vt = reinterpret_cast<vtable *>(d);
    type_info *ti = vt->typeinfo;
    const char *name = ProcessRawName(ti->name);       
}

В целом реальным аргументом против RTTI является непригодность для обслуживания необходимости изменить код везде каждый раз, когда Вы добавляете новый производный класс. Вместо операторов переключения везде, учтите операторы переключения в виртуальные функции. Это перемещает весь код, который отличается между классами в сами классы, так, чтобы новая деривация просто переопределила все виртуальные функции для становления полностью функционирующим классом. Если необходимо было когда-либо искать через большую кодовую базу в течение каждого раза, когда кто-то проверяет тип класса и делает что-то другое, Вы будете быстро учиться избегать того стиля программирования.

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

27
задан Cameron 10 February 2011 в 01:19
поделиться

2 ответа

Вы можете легко сделать это, нажав кнопку подтверждения:

<p id="accept-favor"><a title="Accept this Favor" 
  href="?wp_accept_favor=<?php comment_ID(); ?>" 
  onclick="return confirm('Are you sure you would like to accept this reply as your favor?');"
  >Accept this Favor</a></p>

Хотя вместо «Да / Нет» будет отображаться «ОК / Отмена». Если вы действительно хотите Да / Нет, вам придется использовать собственный диалог.

38
ответ дан 28 November 2019 в 04:34
поделиться

Вы можете использовать эту функцию:

myFunction() {
     var x;
     if (confirm("Are you sure?") == true) {
         x = "You pressed OK!";
     } else {
         x = "You pressed Cancel!";
     }
     return x; 
}
myFunction();
10
ответ дан 28 November 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: