123456789101112131415161718192021222324252627282930
#include <list> #include <iostream> using namespace std; struct mybase{ virtual void proc(){ cout << "I'm mybase" << endl; } }; struct myderiv: public mybase{ void proc(){ cout << "I'm myderiv" << endl; } }; int main(){ myderiv a; a.proc(); mybase *b = &a; b->proc(); list<mybase> c; c.push_back(a); list<mybase>::iterator it = c.begin(); (*it).proc(); return 0; }
I'm myderiv I'm myderiv I'm mybase
std::list<std::unique_ptr<mybase>>
std::list<mybase *>
12
mybase** b_ptrs(NULL); mybase* b_ptrs2[N]; //Where N is some constant
delete
new