如何在C ++中调用屏蔽函数?

时间:2009-10-20 08:43:27

标签: c++ inheritance masking

假设我有这个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>函数时遇到此问题,如果这有任何区别的话)

1 个答案:

答案 0 :(得分:17)

执行以下操作:

::exampleFunction()

::将访问全局命名空间。

如果您#include <ctime>,您应该可以在名称空间std中访问它:

std::time(0);

要避免这些问题,请将所有内容放在名称空间中,并避免使用全局using namespace指令。