私はクラスAを持っており、特定の種類のオブジェクト(そこにあるAのインスタンス)に取り組んでいます。クラスBが欲しいのですが、これはほとんど(つまり、すべてのメソッドが同じではない)同じ動作をしますが、異なるクラスのオブジェクト(そこにあるB)で動作しています。
これが私が試したことです:
#include <iostream>
#include <vector>
class A
{
public:
virtual void perform() { data.push_back(A()); };
std::vector<A> data;
};
class B : protected A
{
public:
B() : A() {}
void test() { perform(); }
std::vector<B> data;
};
int main()
{
B b;
b.test();
std::cout << b.data.size() << std::endl;
}
// output: 0
// I expected: 1
BはBのサブクラスであるためstd::vector<B>
、挿入時にの代わりに使用されることを期待していました。std::vector<A>
私は何が欠けていますか?クラスAで定義されたすべてのメソッドがクラスBで期待どおりに機能することを確認する方法はありますか?
ありがとう!