假设我有这个C ++代码:
void exampleFunction () { // #1
cout << "The function I want to call." << endl;
}
class ExampleParent { // I have no control over this class
public:
void exampleFunction () { // #2
cout << "The function I do NOT want to call." << endl;
}
// other stuff
};
class ExampleChild : public ExampleParent {
public:
void myFunction () {
exampleFunction(); // how to get #1?
}
};
我必须从Parent
类继承,以便在框架中自定义某些功能。但是,Parent
类正在屏蔽我要调用的全局exampleFunction
。有什么办法我可以从myFunction
调用它吗?
(实际上我在time
库中调用<ctime>
函数时遇到此问题,如果这有任何区别的话)
答案 0 :(得分:17)
执行以下操作:
::exampleFunction()
::
将访问全局命名空间。
如果您#include <ctime>
,您应该可以在名称空间std
中访问它:
std::time(0);
要避免这些问题,请将所有内容放在名称空间中,并避免使用全局using namespace
指令。