0

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

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

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 的包装器,围绕派生类的基指针?

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

4

0 回答 0