E4X в ActionScript

Глядя на реализация 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 !? */
  }
}

Будет ли вызываться деструктор базового класса, если деструктор производного класса выдает вызов? Или будет утечка?

23
задан Johannes Schaub - litb 22 December 2010 в 11:08
поделиться