C ++重载指针的类型转换操作符

时间:2010-09-19 15:40:57

标签: c++ pointers operator-overloading bison casting

我有这样的转换:

Class1 *p1;
Class2 *p2 = new Class2();
p1 = (Class1 *) p2;

我可以覆盖上面的类型转换操作符以返回自定义的Class1对象指针吗? 如果是的话怎么样?

编辑:我的确切问题是我有这样的代码:

if (*$1 == ArrayType(AnyType()))
{
    $$ = ((ArrayType *) $1)->getElementsType();
}

运算符==超载,因此$ 1可能是AnyType *。

类型

1 个答案:

答案 0 :(得分:5)

不,您不能重载非类类型的转换运算符。

您想要解决的实际问题是什么?您可能需要考虑在实际类中提供转换运算符。