基本クラスのコピー コンストラクターについて少し混乱しています。
私はこのコードを持っています:
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;
そして、これはどのように達成できますか?完全なコードを要求するのではなく、正しい指示を求めるだけです。
それとも、派生クラスのベース ポインターの周りに、オブジェクトと呼ばれるラッパーを使用する方がよいでしょうか?
誰かが私に情報を教えてくれることを願っています!