我有这样的转换:
Class1 *p1;
Class2 *p2 = new Class2();
p1 = (Class1 *) p2;
我可以覆盖上面的类型转换操作符以返回自定义的Class1对象指针吗? 如果是的话怎么样?
编辑:我的确切问题是我有这样的代码:
if (*$1 == ArrayType(AnyType()))
{
$$ = ((ArrayType *) $1)->getElementsType();
}
运算符==超载,因此$ 1可能是AnyType *。
类型答案 0 :(得分:5)
不,您不能重载非类类型的转换运算符。
您想要解决的实际问题是什么?您可能需要考虑在实际类中提供转换运算符。