6

修飾名ルックアップの目的で使用される既知のスコープ解決演算子として。しかし、によって返される値は何::ですか? 私が理解したように、それは後置単項演算子です。次の点を考慮してください。

namespace A
{
    //something
}

A:: //error: expected unqualified-id before ‘int’

int main(){ }

その振る舞いを説明できますか?

4

4 に答える 4

5

スコープ解決演算子::は単なる構文演算子であり、他のセマンティクスはありません。つまり、言語の構文にのみ寄与する演算子と、プログラムのセマンティクス/ランタイム動作にも寄与する演算子があり、そのセマンティクスはカスタマイズできます。それは演算子のオーバーロードです。

于 2014-06-01T10:03:24.650 に答える
2

私の知る限り、(オーバーロードされていない)::演算子の唯一の意味はスコープ解決です。あなたのコードはA::int main()、エラーを生成するものとして解釈されます。

于 2014-06-01T10:03:14.170 に答える