C++中的虚函数(类的向上转换,和向下转换)
1.C++中的封装是为了代码的模块化,继承是为了代码的重用,而多态则是为了接口的重用。
2.C++中的多态是用虚函数来实现的。
3.子类对象向父类指针的转换(向上转换)是安全的,隐式的,而父类对象向子类指针的转换(向下转换)是不安全的,用dynamic_cast<>转换会得到一个空指针。
4.普通的成员函数会根据指针的类型决定调用哪个函数,而虚函数则会每次都去查虚函数表,根据具体的类对象来决定调用哪个函数。
1.C++中的封装是为了代码的模块化,继承是为了代码的重用,而多态则是为了接口的重用。
2.C++中的多态是用虚函数来实现的。
3.子类对象向父类指针的转换(向上转换)是安全的,隐式的,而父类对象向子类指针的转换(向下转换)是不安全的,用dynamic_cast<>转换会得到一个空指针。
4.普通的成员函数会根据指针的类型决定调用哪个函数,而虚函数则会每次都去查虚函数表,根据具体的类对象来决定调用哪个函数。