http://en.cppreference.com/w/cpp/iterator/back_insert_iteratorを見るとstd::back_insert_iterator
コンテナの push_back メソッドが呼び出されることを示しています。コンテナに push_back のメソッドがあるかどうかをどのように知るのでしょうか? 仮想クラスを拡張するクラスが必要ですか? また、それはどこで定義されていますか?
http://en.cppreference.com/w/cpp/iterator/back_insert_iteratorを見るとstd::back_insert_iterator
コンテナの push_back メソッドが呼び出されることを示しています。コンテナに push_back のメソッドがあるかどうかをどのように知るのでしょうか? 仮想クラスを拡張するクラスが必要ですか? また、それはどこで定義されていますか?
コンテナの push_back メソッドが呼び出されることを示しています。コンテナに push_back のメソッドがあるかどうかをどのように知るのでしょうか? 仮想クラスを拡張するクラスが必要ですか? また、それはどこで定義されていますか?
いいえ、push_back()
通常は仮想メソッドではありません。
は、渡されたオブジェクトstd::back_insert_iterator
を呼び出すテンプレートです。push_back()
メソッドが欠落している場合、コンパイル エラーが発生します。
魔法のようにこれが真実であることを知りません。代わりに、そのような関数が見つからない場合、コンパイルに失敗します。
呼び出す操作 (この場合は代入)push_back
は を使用して記述されてpush_back
おり、指定されたコンテナーにその名前の関数がない場合、その関数の呼び出しは単にコンパイルされません。
それは知りません、あなたはそれを知っているべきです。必要なコンテナを渡す必要がありpush_back
ますstd::back_insert_iterator
。そうしないと、コンパイル エラーが発生します。
たとえば、これを a に使用すると、次のset
エラーが発生します。
「class std::set」には「push_back」という名前のメンバーがありません