Как я могу сделать функцию-оболочку, которая вызывает другую функцию с точно такими же именем и параметрами, что и сама оболочка в глобальном пространстве имен?C++-оболочка с таким же именем?
Например, у меня есть A.h foo (int bar); и в A.cpp - его реализация, а в B.h foo (int bar); и в B.cpp foo (int bar) {foo (bar)}
Я хочу, чтобы foo (bar) B.cpp вызывал foo (int bar) A.h, а не сам рекурсивно.
Как я могу это сделать? Я не хочу переименовывать foo.
Update:
хиджры в глобальном пространстве имен, и я не могу изменить его, так что я думаю, с помощью пространств имен не вариант?
Update:
Namespaces решить эту проблему. Я не знаю, что вы можете вызвать глобальную функцию пространства имен с :: Foo()
Пока B.h можно изменить, чтобы поместить его foo() в пространство имен, тогда вы все равно можете это сделать. –
namespaces - это не вариант? Вы хотите, чтобы B правильно использовал пространство имен A? и вы не можете изменить пространство имен? поэтому в чем проблема, вам никогда не нужно менять A. Сделать B вызывать A :: foo(), и если вы не можете изменить B, тогда вам нечего делать bc, похоже, что вы ничего не можете изменить;) – 2009-02-19 15:14:37