c++ 常见面试题

1.多态,虚函数,纯虚函数

多态:是对于不同对象接收相同消息时产生不同的动作。

C++的多态性具体体现在运行和编译两个方面:在程序运行时的多态性通过继承和虚函数来体现;

在程序编译时多态性体现在函数和运算符的重载上;

虚函数:在基类中冠以关键字 virtual 的成员函数。 它提供了一种接口界面。允许在派生类中对基类的虚函数重新定义。

纯虚函数的作用:在基类中为其派生类保留一个函数的名字,以便派生类根据需要对它进行定义。作为接口而存在 纯虚函数不具备函数的功能,一般不能直接被调用。

从基类继承来的纯虚函数,在派生类中仍是虚函数。如果一个类中至少有一个纯虚函数,那么这个类被称为抽象类(abstract class)。

抽象类中不仅包括纯虚函数,也可包括虚函数。抽象类必须用作派生其他类的基类,而不能用于直接创建对象实例。但仍可使用指向抽象类的指针支持运行时多态性。

2. main 函数执行以前,还会执行什么代码?

答案:全局对象的构造函数会在main 函数之前执行。

3.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?

【参考答案】

生命周期不同:

全局变量随主程序创建和创建,随主程序销毁而销毁;局部变量在局部函数内部,甚至局部循环体等内部存在,退出就不存在;

使用方式不同:通过声明后全局变量程序的各个部分都可以用到;局部变量只能在局部使用;分配在栈区。 

操作系统和编译器通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。局部变量则分配在堆栈里面 。

4. 指针和引用的区别

1.指针有自己的一块空间,而引用只是一个别名; 
2.使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小; 
3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象 
的引用; 
4.作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引 
用的修改都会改变引用所指向的对象; 
5.可以有const指针,但是没有const引用; 
6.指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能 
被改变; 
7.指针可以有多级指针(**p),而引用至于一级; 
8.指针和引用使用++运算符的意义不一样;
 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值