假设我们有一个名为Base的类。在这个类中,有一个向量和函数在这个向量上运行。我想根据矢量的类型创建不同的派生类(一个继承int类,另一个char ...等)。有些方法对于不同的派生类完全相同(int,char,bool ...),其他方法则完全不同。这些方法需要访问向量元素。类继承和重新定义成员类型C++
考虑下面的代码:
class Base {
public:
std::vector<int> vec;
virtual void Print() { std::cout << vec[0]; }
};
class Derived : public Base {
public:
std::vector<bool> vec;
};
int main() {
Base * test = new Derived;
test->vec.push_back(5);
test->Print();
system("PAUSE");
}
这将打印一个int,而不是一个布尔值。
派生类不能删除或覆盖的东西,这是已在基类。也许你应该尝试模板而不是继承,或者两者的结合? – Detheroc 2013-04-21 01:54:57