Назовите/Возвратите функцию классического C++ (C с Классами), какие современные языки имеют его?

На странице 57 Дизайна и Эволюции C++, доктор Stroustrup говорит о функции, которая была первоначально частью C с Классами, но это не часть современного C++ (стандартный C++). Функцию называют call/return. Это - пример:

class myclass
{
  call() { /* do something before each call to a function. */ }
  return() { /* do something else after each call to a function. */ }
  ...
};

Я нахожу эту функцию очень интересной. Какой-либо современный язык имеет эту конкретную функцию?

10
задан FrustratedWithFormsDesigner 22 April 2010 в 03:42
поделиться

2 ответа

Современным эквивалентом C++ будет объект sentry: постройте его в начале функции, а его конструктор реализует call(), а при возврате (или ненормальном выходе) его деструктор реализует return().

7
ответ дан 4 December 2019 в 01:56
поделиться

Аспектно-ориентированное программирование имеет это. http://en.wikipedia.org/wiki/Aspect-oriated_programming

Аспектно-ориентированное программирование (также известное как АОП) имеет возможность создавать перехватчики до, после и вокруг кода.

2
ответ дан 4 December 2019 в 01:56
поделиться
Другие вопросы по тегам:

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