1、C和C++中struct有什么区别?
---------- | protection行为 | 能否定义函数 |
---|---|---|
C | 无 | 否,但可以有函数指针 |
c++ | 有,默认是public | 可以 |
2、C++中的struct和class有什么区别?
struct拥有class所有功能。
(1)默认继承权限。class-》private,struct-》public
(2)成员的默认访问权限。class-》private,struct-》public
3、如何判断一段程序是由C编译程序还是由C++编译程序编译的?
#ifdef __cplusplus
cout<<"c++";
#else
cout<<"c";
#endif
4、C和C++有什么不同?
从机制上:C是面向过程的;C++是面向对象的,提供了类。
C语言是结构化编程语言,C++是面向对象编程语言。
C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。
5、“引用”和指针的区别是什么?
指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。
7、int id[sizeof(unsigned long)];这个对吗?为什么?
正确
这个sizeof是编译时运算符,编译时就确定了,可以看成和机器有关的常量。
8、某文件中定义的静态全局变量(或称静态外部变量)其作用域是()?
A。只限某个函数 B。本文件
C。跨文件 D。不限制作用域
答案:B。静态全局变量限制了其作用域在定义该变量的源文件内有效。
9、C++函数中值的传递方式有哪几种?
C++函数的三种传递方式为:值传递,指针传递和引用传递
10、对于一个频繁使用的短小函数,在C语言应用什么实现,在C++中应用什么实现?
C语言用宏定义,C++用inline
11、引用和指针有什么区别?
1)引用必须初始化,指针不用。
2)引用初始化以后不能被改变,指针可以改变所指的对象。
3)不存在指向空值的引用,但是存在指向空值的指针。
12、C++中virtual与inline的含义分别是什么?
virtual虚函数。
inline内联函数
虚函数的特点:如果希望派生类能够重新定义基类的方法,则在基类中将该方法定义为虚函数,这样可以启用动态联编。
内联函数的特点:使用内联函数的目的是为了提高函数的运行效率。内联函数体的代码不能过长,因为内联函数省去调用函数的时间是以代码膨胀为代价的。内联函数不能包含循环语句。
13、VC中,编译工具条内的Debug和Release选项是什么含义?
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,以便程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的。
14、函数assert的用法?
断言assert是仅在debug版本起作用的宏,用于检查“不应该”发生的情况。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。
15、const与#define的比较,const有什么优点?
1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)
2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
16、请你谈谈引用和指针的区别
1)引用被创建的同时必须初始化
2)不能有null引用,引用必须与合法的存储单元连接
3)一旦引用被初始化,就不能改变引用的关系。(指针则可以随时改变所指的对象)