C++面试题(一)——基础概念篇

转载 2015年11月17日 22:30:48

C++面试题——基础概念篇

唐璐

http://blog.csdn.net/worldwindjp/

        面试C++程序员的时候一般都是3板斧,先是基础问答,然后一顿虚函数、虚函数表、纯虚函数、抽象类、虚函数和析构函数、虚函数和构造函数。接着拷贝构造函数、操作符重载、下面是STL,最后是智能指针。
       都能挺过去那基本知识这关应该算是过了,下面就是项目背景和算法了。

     1,C++和C相比最大的特点
                   1)面向对象:封装,继承,多态。
                   2)引入引用代替指针。
                   3)const /inline/template替代宏常量。
                   4)namespace解决重名的问题。
                   5)STL提供高效的数据结构和算法
     
     2,你知道虚函数吗
     答案:实现多态所必须,父类类型的指针指向子类的实例,执行的时候会执行之类中定义的函数。
     
     3,析构函数可以是虚函数吗?
     答案: 如果有子类的话,析构函数必须是虚函数。否则析构子类类型的指针时,析构函数有可能不会被调用到。

     4,多态的实现。
     答案:简而言之编译器根据虚函数表找到恰当的虚函数。对于一个父类的对象指针类型变量,如果给他赋父类对象的指针,那么他就调用父类中的函数,如果给他赋子类对象的指针,他就调用子类中的函数。函数执行之前查表。

     5,虚函数表是针对类还是针对对象的?
     答案:虚函数表是针对类的,一个类的所有对象的虚函数表都一样。
     
     6,纯虚函数和虚函数有什么区别
     
答案:纯虚函数就是定义了一个虚函数但并没有实现,原型后面加"=0"。包含纯虚函数的类都是抽象类,不能生成实例。

     7,构造函数可以是虚函数吗?
     答案:每个对象的虚函数表指针是在构造函数中初始化的,因为构造函数没执行完,所以虚函数表指针还没初始化好,构造函数的虚函数不起作用。

     8,构造函数中可以调用虚函数吗?
     
答案:就算调用虚函数也不起作用,调用虚函数同调用一般的成员函数一样。

     9,析构函数中可以调用虚函数吗?
     
答案:析构函数中调用虚函数也不起作用,调用虚函数同调用一般的成员函数一样。析构函数的顺序是先派生类后基类,有可能内容已经被析构没了,所以虚函数不起作用。

     10,虚继承和虚基类
     
答案:虚继承是为了解决多重继承出现菱形继承时出现的问题。例如:类B、C分别继承了类A。类D多重继承类B和C的时候,类A中的数据就会在类D中存在多份。通过声明继承关系的时候加上virtual关键字可以实现虚继承。



FROM:  http://blog.csdn.net/worldwindjp/article/details/18909079

C++面试题(一)——基础概念篇

C++面试题——基础概念篇 普通C++面试时候的一般都是这个套路:      1,C++和C相比最大的特点                    1)面向对象:封装,继承,多态。           ...
  • worldwindjp
  • worldwindjp
  • 2014年02月03日 13:06
  • 3551

计算机网络基础——基本概念

白话讲计算机网络基础——基本概念基本概念 internet:互连网,泛指由多个计算机网络互连而成的计算机网络。 Internet:互联网,指当前全球最大的、开放的、由众多网络相互连接而成的特定互连...
  • qq_34594236
  • qq_34594236
  • 2017年05月05日 18:48
  • 305

网络营销的几个基本概念

什么是网络营销?网络营销(On-line Marketing或E-Marketing)就是以国际互联网络为基础,利用数字化的信息和网络媒体的交互性来辅助营销目标实现的一种新型的市场营销方式。简单的说,...
  • yanfangphp
  • yanfangphp
  • 2012年11月06日 15:32
  • 332

互联网基础知识(在校总结版)

(最近翻看在学校时总结的东西,发现了这篇文章,与大家分享。)本文首先介绍互联网的标准化,接着介绍互联网的分层模型,然后介绍了互联网的分类,最后对互联网的组成进行了详细的说明。1.互联网的标准化“没有规...
  • zhouzxi
  • zhouzxi
  • 2016年05月21日 12:32
  • 4425

C++基础知识复习与总结(6)---友元friend、友元函数和友元类

为了在类之间进行数据共享时,提高效率,C++引入了友元的概念。友元主要有三个方面的应用: 将普通函数声明为类的友元函数; 将一个类声明为其他类的友元类; 将一个类中的成员函数声明为其他类的友元函数...
  • weixin_38215395
  • weixin_38215395
  • 2018年01月22日 14:56
  • 22

前端面试题整理——CSS篇

1.CSS 中类 (classes) 和 ID 的区别。 1.书写上的差别:class名用“.”号开头来定义,id名用“#”号开头来定义; 2.调用上的区别:在同一个html网页页面中cla...
  • haimianxiaojie
  • haimianxiaojie
  • 2016年04月10日 22:04
  • 3406

ORACLE数库之PL/SQL高级篇 与 阿里dba笔试题

http://jackroomage.iteye.com/blog/406534    ---阿里巴巴公司DBA笔试题  http://blog.sina.com.cn/s/blog_5ce87d56...
  • wenzhihui_2010
  • wenzhihui_2010
  • 2014年02月21日 21:37
  • 729

Java 之JNI基础篇(一)

JNI,即Java Native Interface。它其实就是一套java与本地代码交互的接口或者说是一个协议。通俗的比喻,就是中国人讲中国话,日本人讲日本话,于是中国人碰到日本人,各说各话,无法交...
  • yingshukun
  • yingshukun
  • 2018年01月13日 18:51
  • 10028

谭浩强C++ 读书笔记

C++程序设计  汇编语言/计算机语言 ...
  • calm_agan
  • calm_agan
  • 2006年05月08日 09:00
  • 3431

C++ 基础概念收藏 (一)

  C++ 基础概念收藏 pointers(指针)、references(引用)、casts(类型转换)、arrays(数组)、constructors(构造)- 再沒有比这些更基础的议题了。几乎最简...
  • zhongjiekangping
  • zhongjiekangping
  • 2009年09月17日 20:37
  • 1453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++面试题(一)——基础概念篇
举报原因:
原因补充:

(最多只允许输入30个字)