使用(否)指针投射到基础和向后

时间:2012-11-10 13:04:43

标签: c++ inheritance casting

我对基类复制构造函数感到有点困惑。

让我们坐下来,我有这个代码:

struct object
{
    object() {}
    object(const object& value)
    void function() { }

    template <class any> operator any() const
    {
        return any(*this);
    }
};

template <class any> struct primitive
{
    any& _value;
    primitive(any& value) : _value(value) {}
    primitive(const object& value);
    operator any() const;

};

是否可以像这样使用这些类?

将int转换为对象:

(object)primitive<int>(x);

通过调用复制构造函数复制对象:

object y = (object)primitive<int>(x);

仍然能够将对象转换回int:

int z = (int)(primitive<int>)y;

这怎么可能实现?我不要求完整的代码,只是为了正确的方向。

或者一个更好的方法是一个名为object的包装器,围绕派生类的基指针?

希望有人能给我一些信息!

0 个答案:

没有答案