私はこのように見える存在していたクラスや機能があります。C++:関数呼び出し中にベクトル<derived_class>をベクトル<base_class>にキャストできますか?私は渡すことができ、機能<code>Func</code>を変更せずに、今</p> <pre><code>Class derived_class: public base_class{ ... } </code></pre> <p>:
Class base_class{
...
}
void Func(...,vector<base_class> &vec_b,...){
// inside the function, the vector vec_b is being re-organized and re-sized
}
を、私は次のようになります派生クラスを定義しFunc
にvector<derived_class>
、EX:
void main(){
vector <derived_class> d;
Func(...,d,...);
}
ように派生クラスd
は同じ再構成とサイズ変更を受けますか? 関数呼び出しで、派生クラスを基底クラスにキャストすることはできますが、問題なくベクトルを使用できるようになると、難しそうですね。私は答えをオンラインで見つけることができないので、どんな提案や助けも大歓迎です。ありがとう。
あなたのベクトルはポインタではなく値でオブジェクトを保持しているので、多態性の動作をとることはできません。私は、何がポイントですか? – ildjarn
関連:http://stackoverflow.com/a/114883/8747。 –
多少関連性の高いもの:[http://www2.research.att.com/~bs/bs_faq2.html#conversion](https://www2.research.att.com/~bs/bs_faq2.html#conversion) –