Рассмотрим два повторяющихся метода, поздние часы, сложный код.Короче говоря, эти две функции выглядят так:
void foo(int x)
{
... foo(x);
}
void bar(int x)
{
... foo(x); // oops, I meant "bar"
}
Я много раз хотел (и я все еще хочу) иметь какой-нибудь символический вызов, такой как «self», поэтому я мог переписать его так:1004 *
void foo(int x)
{
... self(x);
}
void bar(int x)
{
... self(x); // great! this is what i meant --> bar
}
Пока единственное, что я могу придумать, это написать общую функцию "self", которая при вызове проверяет стек, получает вызывающего и вызывает его.Однако было бы невозможно использовать его с наследованием:
void inherited(int x)
{
base.self(x);
}
Большое спасибо за ваши комментарии / идеи / и т.д .: -)