c++经典面试题 下载本文

内容发布更新时间 : 2024/5/19 3:34:51星期一 下面是文章的全部内容请认真阅读。

1. C和C++中struct有什么区别?

C语言中:Struct是用户自定义数据类型(UDT) C++语言中:

Struct是抽象数据类型(ADT),支持成员函数的定义。

在C++中,struct的成员的默认访问说明符为public,class为private。 c中的struct是没有权限设置的。

C++中struct增加了访问权限,且可以和类一样有成员函数。 C++中的struct等同于class,只是class默认成员权限是private,而struct默认成员权限是public。

1> C++中的struct类似于class,有变量,有构造函数、虚函数等,有继承,多态等类的特征;

2> 2> C中的struct只有变量,不能有函数,但是可以有函数指针

2. C++中的struct和class有什么区别?

在C++中,两者区别不大,但是有2个主要的区别

1>.继承权限:struct默认是public继承;class默认是private继承

1

2>. 访问权限:struct默认是public访问;class默认是private访问

3.如何判断一段程序是由C 编译程序还是由C++编译程序编译的? 【标准答案】 #ifdef __cplusplus cout<<“c++\ #else cout<<\ #endif

(这个以前还真没注意过,涨姿势了。。。)

4. C和C++有什么不同? 【参考答案】 从机制上:

c是面向过程的(但c也可以编写面向对象的程序);

c++是面向对象的,提供了类。但是,c++编写面向对象的程序比c容易。

2

从适用的方向: c适合要求代码体积小的,效率高的场合,如嵌入式;c++适合更上层的,复杂的; linux核心大部分是c写的,因为它是系统软件,效率要求极高。

从名称上也可以看出,c++比c多了+,说明c++是c的超集;那为什么不叫c+而叫c++呢,是因为c++比 c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c++。

C语言是结构化编程语言,C++是面向对象编程语言。 C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

关于这个问题,个人觉得《Effective C++》上面第一条说的很好, View C++ as a federation of languages. 把C++当做一个语言联邦。

C++由四部分组成 1>c语言部分;

2>面向对象部分,包括封装、继承、多态这些C语言所没有的特性; 3>泛型编程部分,大多数类、函数要考虑到把它设计成模板,方便复用;

3