|
|
1
2
自从你
此外,当涉及到转换运算符本身时,无论您是对是错都是一个无意义的问题,因为您的转换运算符无论如何都不会被使用。派生到基的转换始终由内置的方法处理。如果您为转换提供自己的运算符(如上所述),它将被忽略。 我不知道你打算如何用不同的比较方法来解决最初的问题。 |
|
|
2
2
由于使用公共继承,C++将自动执行您试图实现的转换。没必要自己动手。 不过,我认为这不一定是继承的一个好用途。您只是在这里使用它而不使用任何虚拟函数,并且只是为了有效地组合子类。一般来说,派生类是为了改变行为,而不是重用它。 我认为最好是简单地创建一个外部算法。由于缺少虚拟函数,无论如何都不能用基指针/引用替换,因此,不必转换为派生类来强制显式比较,只需调用(可能是友元)独立方法来进行不区分大小写的比较。如果需要在运行时动态更改算法,甚至可以传递算法(使用函数)。 |