C++面试知识点(基础知识篇1)

    本文所来源题目转载自http://www.cnblogs.com/Forever-Kenlen-Ja/p/9142799.html。做此答案的补充,一方面为了自己查漏补缺,另一方面希望能给求职者一点帮助。本篇结合了网上一些见解,为入门级别,如有错误望指正,如有侵权请联系作者删除。

 

    1、多态的实现

     答:多态即一个接口多种实现,主要体现在静态多态与动态多态。静态多态在编译时体现,主要包括模板和重载;而动态多态则主要在类的继承,或者说虚函数来体现。

    2、说说C/C++的区别

    答: C++是C的超集,但绝不是C的替代品。语言本身来讲,C语言面向过程,C++面向对象但并不完全面向对象。C++相对于原来的C还引入了重载、内联函数、异常处理等。C++扩展了面向对象设计的内容,如类,继承,虚函数,模板和标准模板库等。在C++中不仅需要考虑数据封装,还需要考虑对象的选择、对象接口的设计和继承,组合与继承的使用等问题。

    3、const关键字

    答:使某个对象,值,引用等不可以被修改;

           修饰传参时,使参数不可以被更改;

           修饰类内的静态变量时,可以使静态变量在类内初始化;

           修饰函数,可以防止函数内部的相关赋值操作;

           《C++ primer》指出,尽量使用const而避免使用#define。面试也经常问及const和#define的区别。见            http://blog.sina.com.cn/s/blog_79b01f6601018xdg.html##1

    4、说说malloc/free 和 new/delete区别

    答: 篇幅略长,需转https://blog.51cto.com/10738432/1748702

    5、指针和引用的区别

    答: 指针是一个新的变量,而引用只相当于别名;

            引用只能在定义时被初始化一次,之后不可变;指针可变;

            引用不能为空,指针可以为空;

            引用没有 const,指针有 const,const 的指针不可变等。

    6、C++中堆和栈的区别

    答:管理方式不同,栈,由编译器自动管理,无需程序员手工控制;堆:产生和释放由程序员控制; 

           空间大小不同 栈的空间有限;堆内存可以达到4g;

           能否产生碎片不同 栈不会产生碎片,因为栈是种先进后出的队列。堆则容易产生碎片,多次的new/delete 会造成内存的不连续,从而造成大量的碎片;  

           生长方向不同 堆的生长方式是向上的,栈是向下的;

           分配方式不同 堆是动态分配的。栈可以是静态分配和动态分配两种,但是栈的动态分配由编译器释放;

           分配效率不同

7、关键字static

答: 隐藏;默认初始化为0;更改局部变量的生命周期;

        在C++的类中,static又有了特殊含义。static修饰成员函数时,成员函数没有this指针,此函数属于类本身而不属于类的任何实例化对象(即只能通过A::funa()调用),此函数智能调用类的静态成员变量,对其他成员没有访问权限。static修饰成员变量时,成员变量只能在类外初始化,不过,用const修饰的成员变量可以在类内初始化。

8、在C++程序中调用被C语言修饰的函数,为什么要加extern “C”

答: 见https://blog.csdn.net/linpuliang/article/details/43152597

9、如何防止头文件被重复包含

答: #ifndef;#pragma once; 或者两者结合使用也是可以。

10、什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?

答:见https://blog.csdn.net/zhangsj2016/article/details/53444099

稍后更新~~~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值