C++的三大基本特性是:封装、继承、多态。
封装
隐藏对象的属性和实现细节,仅对外公开接口,使得代码模块化。继承
是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承的过程,就是从一般到特殊的过程。- 多态
多态是通过虚函数来实现的。
#include <iostream>
using namespace std;
class A
{
public:
virtual void foo(){printf("1\n");}
void g(){printf("2\n");}
};
class B:public A
{
public:
virtual void foo(){printf("3\n");}//多态
void g(){printf("4\n");}//重写父类中的g函数
};
int main()
{
B Bb;
A *a=&Bb;
B *b=&Bb;
a->foo();//多态根据对象判断输出,此时输出3
a->g();//输出2
b->foo();//同理输出3
b->g();//重写,根据指针判断输出,输出4
return 0;
}
多态是在运行期间确定调用哪个函数的,属于动态联编。(感觉自己没有理解透彻,看看书后再来补充)