您的位置:首页 > 编程语言 > C语言/C++

C++面试的几个小题目

2012-09-10 17:45 387 查看
1.指针和引用的区别?

1)引用必须初始化,指针不需要;

2)有空指针,没有空引用;

3)引用初始化之后就不能改变,而指针式可以随时指向任意的地址的。

2.将引用作为函数的返回值的格式,好处和需要遵循的原则?

格式:类型标识符 &函数名(形参列表及类型说明){函数体}

好处:不产生返回值的副本

需要注意的是:

1)不能返回局部变量的引用;

2)不能返回函数内部的new分配的内存的引用;

3)可以返回类成员的引用,但是最好是const;

4)+-*/四则运算不能返回引用。

3.什么时候需要使用引用?

流操作符<<和>>、赋值操作符=的返回值,拷贝构造函数的参数,赋值操作符=的参数、其它情况都推荐使用引用。

4.指针和数组的区别?

1)修改内容上的差别

char a[] = “hello”;

  a[0] =
‘X’;

  char *p =
“world”; //
注意p
指向常量字符串

  p[0] =
‘X’; //
编译器不能发现该错误,运行时错误

2)Sizeof可以得到数组的容量,但是sizeof(p)不能得到p所指内存的容量,他表示的只是p指针变量的字节数。

3)数组在作为函数的参数的时候自动的退化为同类型的指针。

5.面向对象的三个基本特征?

面向对象的三个基本特征:封装,继承,多态

1)封装:将客观的事物抽象成类,每一个类对自身的数据和方法实行保护

2)继承:广义的继承有三种方式:

实现继承:使用基类的属性和方法而无需额外的编码的能力

可视继承:子窗体使用父窗体的外观和实现代码

接口继承:仅使用属性和方法,实现滞后到子类实现

3)多态:一句话就是:允许将子类类型的指针赋值给父类类型的指针。

这是我今天面试的几个题目,写下来让大家参考下,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: