Ara*_*raK 10 c++ aop language-features programming-languages
在C++的设计和演变的第57页上,Stroustrup博士讨论了一个最初属于C with Classes的功能,但它不是现代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. */ }
...
};
Run Code Online (Sandbox Code Playgroud)
我觉得这个功能非常有趣.任何现代语言都有这个特殊功能吗?
现代C++等价物将是一个哨兵对象:在函数的开头构造它,使用它的构造函数实现call()
,并在返回(或异常退出)时,它的析构函数实现return()
.