ただ疑問に思う...
C ++をいじってみるとcircle
、というクラスを作成してから、クラスの名前とまったく同じ名前の変数を宣言しても、コンパイラは文句を言わないことがわかりました。例えば:
class circle {
// whatever it does in here
};
circle circle; // is a valid statement, but
circle *circle = new circle(); // gives you a 'circle' is not a type complain
これはstringstring="string";に当てはまることがわかります。同じように。そして、Javaで試してみました。C#でも動作する可能性があると思いますが、試したことはありません。
この背後にある理由と、これが意図的な機能であるかどうかを誰かに教えてもらえますか?