2

私がこの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>

4

1 に答える 1

17

以下をせよ:

::exampleFunction()

::グローバル名前空間にアクセスします。

の場合#include <ctime>、名前空間でアクセスできるはずですstd

std::time(0);

これらの問題を回避するには、すべてを名前空間に配置し、グローバルusing namespaceディレクティブを回避します。

于 2009-10-20T08:45:13.267 に答える