我刚刚听完了Scott Meyers关于C++ 0x的软件工程电台播客采访.大多数新功能对我来说都很有意义,我现在对C++ 0x感到兴奋,除了一个.我仍然没有得到移动语义 ......它们究竟是什么?
我想在向量中存储几个类的实例.由于所有类都继承自相同的基类,因此这是可能的.
想象一下这个程序:
#include <iostream>
#include <vector>
using namespace std;
class Base
{
public:
virtual void identify ()
{
cout << "BASE" << endl;
}
};
class Derived: public Base
{
public:
virtual void identify ()
{
cout << "DERIVED" << endl;
}
};
int main ()
{
Derived derived;
vector<Base> vect;
vect.push_back(derived);
vect[0].identify();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望它能打印"DERIVED",因为"识别"方法是虚拟的.相反,'vect [0]'似乎是一个'Base'实例,它打印出来
基础
我想我可以写一个我自己的容器(可能是从vector派生的),不知何故能够做到这一点(也许只能拿指针......).我只是想问一下是否有更多的C++ ish方法来做到这一点.我希望完全兼容矢量(只是为了方便其他用户应该使用我的代码).