C/C++ 常见1000道面试题( 111 ) |
您所在的位置:网站首页 › lua语言面试题 › C/C++ 常见1000道面试题( 111 ) |
901.C++中类成员的作用域 (1)类成员的作用域只在类的内部,外部无法直接访问 (2)成员函数可以直接访问成员变量和调用成员函数 (3)类的外部可以通过类变量访问 public 成员 (4)类成员的作用域与访问级别没有关系。(注意 C++中用 struct 定义的类中所有成员默认为 public,而 class 定义的类成员的默认属性为 private) 902.C++中类的关键字(1)struct 在 C 语言中己经有了自己的含义,必须继续兼容 (2)在 C++中提供了新的关键字 class 用于类定义 (3)class 和 struct 的用法完全相同。但 C++中用 struct 定义的类中所有成员默认访问级别为 public,而 class 定义的类成员的默认访问级别为 private 903.C++中类声明和实现的分离(1).h 头文件只用类的声明:成员变量和成员函数 (2).cpp 源文件中完成类的其它实现(如成员函数的实现) 904.C++中的命名空间C++中命名空间概念用于解决名称冲突问题 (1)在 C 语言中只有一个全局作用域 ①C 语言中所有的全局标识符共享同一个作用域 ②标识符之间可能发生冲突 (2)C++中提出了命名空间的概念 ①命名空间将全局作用域分成不同的部分 ②不同命名空间中的标识符可以同名而不会发生冲突 ③命名空间可以相互嵌套 ④全局作用域也叫默认命名空间 (3)C++命名空间的定义:namespace Name {} ①使用整个命名空间:using namespace name; ②使用命名空间中的变量:using name::variable; ③使用默认命名空间中的变量: ::variable 905.C和C++相互调用(1)C++编译器能够兼容 C 语言的编译方式 (2)C++编译器会优先使用 C++编译的方式 (3)extern 关键字能强制 C++编译器进行 C 方式的编译 906.函数重载的定义、条件、注意事项1.函数重载(overload)的概念 (1)用同一个函数名定义不同的函数 (2)当函数名和不同的参数搭配时,函数的含义不同 2.重载的条件:必须至少满足下面的一个条件 ①参数个数不同 ②参数类型不同 ③参数顺序不同 3.函数重载的注意事项 ①重载函数在本质上是相互独立的不同函数。 ②重载函数的函数类型不同 ③函数的返回值不能作为函数重载的依据 ④函数重载是由函数名和参数列表共同决定的。 907.C++中 inline 内联编译的限制(1)含有递归调用的函数不能设置为 inline (2)使用了复杂流程控制语句:循环语句和 switch 语句,无法设置为 inline(说明:如上述实例,在 VS2013 下,循环语句是可以被内联的) (3)函数体不能过于庞大 (4)不能对函数进行取址操作 (5)函数内联声明必须在调用语句之前. 908.内联函数的定义和特点内联函数的定义 (1)C++编译器可以将一个函数进行内联编译,被 C++编译器内联编译的函数叫内联函数。 (2)C++中使用 inline 关键字声明内联函数 (3)内联函数声明时 inline 关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。 内联函数的特点 (1)C++编译器直接将内联函数的函数体插入到函数调用的地方 (2)内联函数没有普通函数调用时的额外开销(压栈、跳转、返回) (3)C++中推荐使用内联函数替代宏代码片段。 (4)C++编译器也不一定满足函数的内联请求。 909.C++引用的意义(1)功能性:引用在大多数情况下代替指针,可以满足需要使用指针的场合 (2)安全性:可以避开由于指针操作不当而带来的内存错误 (3)操作性:简单易用,又不失功能强大 910.C++引用的本质(1)引用在 C++中的内部实现是一个常量指针,因此引用所占用的空间大小与指针相同。 (2)从使用的角度,引用只是一个别名,C++为了实用性而隐藏了引用的存储空间这一细节。 ①在编译过程中,编译器看到 int& a 的声明就会转换为 int* const a; ②看到使用引用时,会转为*a,如此隐藏了使用指针的事实。 1000道c/c++经典面试题PDF,进官方交流群获取 —————————————Linuxc/c++高性能服务器开发网官方3群—————————————– |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |