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;

そして、これはどのように達成できますか?完全なコードを要求するのではなく、正しい指示を求めるだけです。

それとも、派生クラスのベース ポインターの周りに、オブジェクトと呼ばれるラッパーを使用する方がよいでしょうか?

誰かが私に情報を教えてくれることを願っています!

4

0 に答える 0