C++面试题收集

1:多态是如何实现绑定的?

多态的绑定可以分为运行是多态和编译时多态

● 编译时的多态性

编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。

● 运行时的多态性

运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。

编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。

2:析构函数是虚函数的优点是什么?

这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。

当然,并不是要把所有类的析构函数都写成虚函数。因为当类里面有虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间。所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数

3:指针和引用有什么区别?

(1)引用在创建时必须初始化,指针可以不初始化,引用不可以为NULL指针可以

(2)引用如果初始化为一个对象,就不能改变为另一个对象,而指针可以改变所指的对象


posted @ 2012-04-18 13:27  foreverlearn  阅读(101)  评论(0编辑  收藏  举报