我对基类复制构造函数感到有点困惑。
让我们坐下来,我有这个代码:
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的包装器,围绕派生类的基指针?
希望有人能给我一些信息!