0

次のようにして、VS2010 で「Socket」というクラスを追加できないことはわかっています。

  • プロジェクトを右クリック
  • 追加 -> クラス
  • C++ クラス -> 追加
  • クラス名として「Socket」と入力し、finish を押します

あなたは得る:

'Socket' is a reserved class name

その代わりに、"Socket1" というクラスを追加して、"1" の出現箇所をすべて削除したところ、VS はエラーなしでコンパイルされたようです。これにより、競合が発生しますか? または、名前空間を使用して上記のエラーを回避する適切な方法はありますか?

4

2 に答える 2

5

おそらくそれ(そしてそのことに関してあなたが書いている他のすべてのもの)に名前を付けるだけでよいでしょう、コンパイラーの周りにあなたの方法を強制することは悪い考えです。

于 2012-07-03T14:18:53.657 に答える
0

クラスの名前を変更します (名前空間に配置することは既に提案されており、別の正しいアプローチです)。コンパイラがこれを許可しないのは正しいことです。異なる定義を持つ同じ名前の複数のクラスを持つことは、未定義の動作です。

于 2012-07-03T14:20:41.833 に答える