#include <list>
using std::list;
class foo { ...
class bar : public foo { ...
static void print_all(list<foo*> &L) { ...
list<foo*> LF;
list<bar*> LB;
...
print_all(LF); // works fine
print_all(LB); // static semantic error
我想我知道爲什麼編譯器不會允許第二個調用。任何人都可以舉例說明如果編譯器接受這種類型的調用會發生什麼壞事?使用類的編譯器的行爲
我喜歡這類問題 – zinking