面试题
gavinoy
程序猿
展开
-
构造函数和析构函数能否声明为虚函数?
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:解释一:所谓虚函数就是多态情况下只执行一个。而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象。如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造。还有一个原因就是为了防错,试想如果你转载 2014-02-16 09:35:39 · 1354 阅读 · 0 评论 -
Effctive c++ 心得
37.绝对不要重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定的,而虚函数确是动态绑定的.原创 2014-02-20 22:21:16 · 773 阅读 · 0 评论 -
面试题-数组
当几个指针赋值给相同的常量字符串时,它们实际上会指向相同的内存地址,但用常量内存初始化数组,情况就不同了: char str1[] = "Hello World"; char str1[] = "Hello World"; char *str3 = "Hello World"; char原创 2013-05-01 22:53:33 · 568 阅读 · 0 评论 -
类的引用和复制
#includeusing namespace std;class base{public: base(){} virtual void func(int i = 12) { cout }};class Derived:public base{public: Derived(){} virtual void func(int i = 22)原创 2014-09-21 08:46:32 · 914 阅读 · 0 评论 -
两道腾讯面试题
首先看第一道题目:有1000个一模一样的瓶子,其中有999瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一个星期后死亡。现在,你只有10只小白鼠和一个星期的时间,如何检验出哪个瓶子里有毒药? 其实一般出给面试者的时候,为了题目的开放性,并不会去固定小白鼠的数量,而是问,至少需要多少只小白鼠?(当然是越少越好咯,小白鼠也是生命啊)。这是一个涉及计算机基础科学的智力类题目。主要转载 2014-09-04 15:53:48 · 705 阅读 · 0 评论 -
const的使用注意
1.const成员变量也不能在类定义处初始化,只能通过构造函数初始化列表进行, const数据成员 只在某个对象生存期内是常量,而对于整个类而言却是可变的。2. () const; 1、首先const在函数后面,只能应用于类的成员函数。 2、const表示在函数的执行过程中不允许修改类内的数据成员(mutable修饰数据成员除外)原创 2014-03-24 20:39:31 · 845 阅读 · 0 评论 -
c++四种转换 static_cast,const_cast,dynamic_cast,reinterpret_cast
1.static_cast最常用的类型转换符,在正常状况下的类型转换,如把int转换为float,如:int i;float f; f=(float)i;或者f=static_cast(i);2.const_cast用于取出const属性,把const类型的指针变为非const类型的指针,如:const int *fun(int x,int y){} int *ptr=const_c转载 2014-03-24 20:41:10 · 517 阅读 · 0 评论 -
c++继承中的内存布局
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细 节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++转载 2014-04-30 09:25:54 · 702 阅读 · 0 评论 -
c++面试爱问的问题
1.static_cast,dynamic_cast,reinterpret_cast,const_cast四种转换。2.const作用3.malloc/free, new/delete区别4.虚函数,虚继承,多继承,多虚继承。5.深拷贝,浅拷贝。原创 2014-08-20 11:33:06 · 924 阅读 · 0 评论