代码之家  ›  专栏  ›  技术社区  ›  Panayiotis Karabassis

指针的C++重载类型转换算子

  •  2
  • Panayiotis Karabassis  · 技术社区  · 16 年前

    我有这样的转换:

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

    我可以重写上面的typecast操作符来返回自定义的Class1对象指针吗?

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

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

    运算符==重载,因此$1可能属于AnyType*类型。

    1 回复  |  直到 16 年前
        1
  •  5
  •   David Rodríguez - dribeas    16 年前

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

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