1

Aと、および s からs へのB暗黙的な変換の2 つのクラスがあります。も持っており、それを に変換したい。に暗黙的または明示的に変換できる変換を追加することは可能ですか?ABvector<A>vector<B>vector<A>vector<B>

here で説明されている手法を使用できることはわかっていますが、2 つの間の暗黙的な変換を有効にする方法はありますか? または明示的な変換?

4

4 に答える 4

1

vector< A > を継承する 1 つのクラスと、vector< B > を継承し、他のクラスをパラメーターとして受け取るコンストラクターを実装する別のクラス。

于 2015-02-12T01:22:29.073 に答える
1

間接的に、あります。探しているものではないかもしれませんが、関数 を引数として反復子のペア
を受け入れるテンプレートにすることができます。

void doSomething( const B& );

template<typename Itr>
void foo1( Itr beg, Itr end )
{
    while( beg != end )
        doSomething(*beg++);
}

void foo2()
{
    vector<A> vec;
    foo1( vec.begin(), vec.end() );
}
于 2015-02-11T22:56:22.457 に答える