Глядя на реализация E4X в ActionScript,xmlPerson. @ имя;
Безымянные функции для фильтрации:
xmlData.person. (/ * Predicate * /)
лямбда-синтаксис для предикатов:
xmlData.person. (@ Name == "Brian")
Итак, вот мой вопрос: это всего лишь разовые возможности (как Vector. <>
), которые они вводят только для E4X, поэтому остаются вне досягаемости для нас? Или у нас, как у разработчиков ActionScript, есть доступ к этим функциям?
В частности, я бы хотел получить доступ к дереву выражений этого лямбда-предиката для моего собственного кода (никак не привязанного к классам XML) .
Я понял, что это называется «оператором фильтра» ... но я не уверен, как его использовать. Не уверен, что могу ... поскольку ActionScript не допускает перегрузки оператора: }; class Derived: public ...
Так случилось, что я задался вопросом, как освобождаются ресурсы в следующем случае.
class Base {
Resource *r;
public:
Base() { /* ... */ }
~Base() {
delete r;
}
};
class Derived : public Base {
public:
Derived() { /* ... */ }
~Derived() {
/* Suddenly something here throws! */
}
};
int main() {
try {
Derived d;
} catch(...) {
/* what happened with Base::r !? */
}
}
Будет ли вызываться деструктор базового класса, если деструктор производного класса выдает вызов? Или будет утечка?