是==和!=运算符编译器
我是否需要提供==和/或!=运算符? 我在这里读到:为什么C ++编译器不定义运算符==和运算符!=? 我做了,但是当我真正尝试了它(没有提供它们并试图使用它们),程序编译得很好。 发生什么了?
使用VS2010,如果它很重要。
这些运算符是为基本的,语言定义的类型定义的,而不是为您的定制类型定义的。 例如,它将适用于int
s。 但不会为class foo;
除非你明确地提供它们 - 如果你没有告诉它如何去做,编译器不知道如何比较你自己定义的类型。