几道面试题
2007-11-12 02:14 cppguy 阅读(320) 评论(0) 收藏 举报
最近参加了几次面试,遇到了一些题目,发现自己掌握的知识还不太扎实,当然也有智力题目。现在记下,以供自己和别人参考。
1:c++中的sizeof
int i=0;
sizeof(i)=4;
sizeof(short)=2;
char s[10]="0123456789";
sizeof(s)=10;
char *s="123";
sizeof(s)=4;
2:面向对象和模板的区别
首先觉得两者没有可比性,面向对象是由现实事物到编程语言的抽象方式,而模板只泛型编程的具体形式,可以这样问面向对象与泛型编程的区别,或者类与模板的区别。前者的主要区别就是继承性和多态性,而后者的区别与前者差不多。泛型编程在某些方面比较的灵活,因为他不局限与继承体系。
3:namespace的概念和作用
首先命名空间的出现是为了避免两个变量或函数的名字完全相通的冲突。我们也可以使用程序开头的预编译指示来使用命名空间中的名字。使用预编译指示的好处在于在程序中不必显式地使用命名空间限制符来访问变量
4:const与static的区别
const声明的变量或者参数说明它是可读,而static是1:在函数体内,被声明的静态变量在这一函数被调用过程中维持不变,在模块内,一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外的其他函数访问,它是一个本地的全局变量。也就是他又本地化数据和代码范围的好处。
1:c++中的sizeof
int i=0;
sizeof(i)=4;
sizeof(short)=2;
char s[10]="0123456789";
sizeof(s)=10;
char *s="123";
sizeof(s)=4;
2:面向对象和模板的区别
首先觉得两者没有可比性,面向对象是由现实事物到编程语言的抽象方式,而模板只泛型编程的具体形式,可以这样问面向对象与泛型编程的区别,或者类与模板的区别。前者的主要区别就是继承性和多态性,而后者的区别与前者差不多。泛型编程在某些方面比较的灵活,因为他不局限与继承体系。
3:namespace的概念和作用
首先命名空间的出现是为了避免两个变量或函数的名字完全相通的冲突。我们也可以使用程序开头的预编译指示来使用命名空间中的名字。使用预编译指示的好处在于在程序中不必显式地使用命名空间限制符来访问变量
4:const与static的区别
const声明的变量或者参数说明它是可读,而static是1:在函数体内,被声明的静态变量在这一函数被调用过程中维持不变,在模块内,一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外的其他函数访问,它是一个本地的全局变量。也就是他又本地化数据和代码范围的好处。
浙公网安备 33010602011771号