继承
C++支持多继承
class Parent {
}
class Parent2{
};
class Child : public Parent, private Parent2 {
}
公有继承和私有继承的区别
public Parent:公有继承,private和public都会继承
private Parent:私有继承,只继承private的
多态
静态多态和动态多态
class Child : public Parent{
public:
void test(){
cout << "Child.test" << endl;
//Parent::test(); //调用父类的方法
}
virtual void test2(){
cout << "Child.test2" << endl;
}
}
静态多态,编译的时候就会确定类型
Parent* child2 = new Child(); //静态多态,编译的时候就会确定类型,此处会确认为Parent类型
child2->test(); //打印的是Parent的test()
动态多态 方法名前加 virtual,打印的是Child的Test();
Parent* child3 = new Child(); //动态多态 方法名前加 virtual
child3->test2(); //打印的是Child的Test();
虚函数
纯虚函数
子类必须要实现这个函数
class Parent{
virtual void test3() = 0;
}
使用虚函数动态多态
具体看 #(静态多态和动态多态)
构造方法 永远不要设为虚函数
析构函数 一般声明为虚函数