質問と同様です。私は、異なるベクトルを管理できる1つの機能を作りたいと思っています。私は継承を使うことを考えました。異なるクラスの引数ベクトルをとる関数のファミリを作る方法は?
ここでは、複数のクラスを操作する必要がありますclass A : public C {public: void do();};
class B : public C {public: void do();};
class C {
public:
virtual void do();
}
今、私の機能:AとB
void function(vector<C*>* array) {
for (int i = 0; i < array->size(); i++) {
array->at(i)->do();
}
}
私のプログラムでは、私はそのように、この機能を使用します。
vector<A*>* array = new vector<A*>();
array->push_back(new A());
function(array);
しかし、それはdoesnの仕事はありません。私はこの問題を解決する方法を知らない。テンプレートと
The Visual Studio reports that it cannot convert from vector<A*>* to vector<C*>*
なぜテンプレート機能はありませんか? –
私はテンプレートについて何かを読んだが、それをどうやって行うのか分からない。私はそれらを使用しようとします。 –
@FirstStep:彼はテンプレート関数ではないと言っています。彼は彼が問題を解決する方法を知らないと言いました。この解決策は、テンプレート機能である可能性があります。 –