请教关于多态性的问题
程序代码:
class Base { public: Base(int i):a(i){} void Output(){printf("%d",a);} private: int a; }; class Son : public Base { public: Son(int i, int j):b(j),Base(i){}; void Output(){printf("%d",b);} private: int b; }; int main() { Son S(1001,100); S.Output(); getch(); return 0; }
输出是100,为什么,不是说基类不加虚函数标识符使用的是基类中的函数么?
此外,我用指针Son输出的是100,用指针Base输出的就是1001了
程序代码:
int main() { Son *p=new Son(1001,100); //Base *p=new Son(1001,100); p->Output(); getch(); return 0; }