В моем поиске для этого я также нашел Font.js , который добавляет объект Font так же, как Image, поэтому можно проверить, когда шрифт действительно готов к использованию. Также работает на установленных / системных шрифтах. Недостатком является IE9 + только из-за необходимости Object.defineProperty
(у других браузеров есть), но если вы занимаетесь современной сетью, это кажется еще лучшим вариантом. (Я, к сожалению, должен идти с ответом выше, выше и дальше двигаться дальше:.))
В CastExC
нет h()
. Может быть, поэтому.
Примечание. CastExA
и CastExB
не связаны между собой.
Даже если CastExC
наследует и CastExA<int>
, и CstExB
, определение h()
в CstExB
не переопределит «определение» h()
в CastExA<int>
, потому что CastExA<int>
и CstExB
] не связаны. Если вы попытаетесь сделать это:
CastExBase* a2 = new CastExC();
CastExC* a3 = (CastExC*) a2;
a3->h();
Вы получите неоднозначный запрос на h()
. Если вы хотите перегрузить, вам нужно сделать это вручную:
struct CastExC: protected CastExB, public CastExA<int> {
virtual int h() override { return CastExB::h(); }
};