C++の :: 演算子がスコープ解決であることは知っていますが、このようにクラス内で関数を呼び出す目的は何ですか
class MyClass
{
int myFunc(int argument)
{
// do some stuff
return (::myFunc(another_argument));
}
}
実用的な理由はありますか?「これ」はその中にサブ意図されていますか?
次のようなユースケースがあるとします。
//in the global namespace
int myFunc(int);
//elsewhere
class MyClass
{
int myFunc(int argument)
{
// do some stuff
return (::myFunc(another_argument));
}
}
ここで、メンバー関数とフリー関数を区別する必要があります。これは、C ライブラリをラップするときによく発生します。
この場合::
、再帰的に自分自身を呼び出すことになるメンバー関数ではなく、グローバル名前空間に存在するバージョンを選択するようにコンパイルを強制します。