C++面试题
C++面试题列表
-
C++是不是类型安全的
答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)。C#是类型安全的。... [C++面试题]
-
将"引用"作为函数参数有哪些特点
(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目... [C++面试题]
-
经典c++面试题二
1. 以下三条输出语句分别输出什么?[C易]char str1[] = “abc”;char str2[] = “abc”;const char str3[] = “abc”;const char str4[] = “abc”;const char* st... [C++面试题]
-
经典c++面试题三
9. 结构与联合有和区别?1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员... [C++面试题]
-
"引用"与多态的关系
引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用可以指向它的派生类实例。例Class A; Class B : Class A{…}; B b; A& ref = b;... [C++面试题]
-
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本... [C++面试题]
-
简述数组与指针的区别
数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。(1)修改内容上的差别char a[] = “hello”;a[0] = ‘X’;char *p =... [C++面试题]
-
计算 s=(x*y)1/2,用两个宏定义来实现
解:#include #include main()#define s1(a,b) ((a) *(b))#define s(c) sqrt(c ){ float result; int n1,n2; scanf(“%d”,%n1); scanf(“%d”,&n2);... [C++面试题]
-
iostream与iostream.h的区别
参考答案:namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。和是不一样,前者没有后缀,实际上,在你的编译器include文件夹... [C++面试题]
-
类成员函数的重载、覆盖和隐藏区别
答案:a.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。b.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(... [C++面试题]
-
关联、聚合(Aggregation)以及组合(Composition)的区别
涉及到UML中的一些概念:关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,用空的菱... [C++面试题]
-
我看到了用指针调用函数的不同语法形式
一个函数指针必须用* 操作符(和一对额外的括弧) “转换为” 一个“真正的” 函数才能调用:int r, func(), (*fp)() = func;r = (*fp)();而函数总是通过指针进行调用的... [C++面试题]
-
如何打印出当前源文件的文件名以及源文件的当前行号
答案:cout... [C++面试题]
-
描述内存分配方式以及它们的区别
1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。2) 在栈上创建。在执行函数时,函数内局部变量的... [C++面试题]
-
空指针到底是什么
语言定义中说明, 每一种指针类型都有一个特殊值—— “空指针” —— 它与同类型的其它所有指针值都不相同, 它“与任何对象或函数的指针值都不相等”。也就是说, 取地址操... [C++面试题]
-
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
解: struct example *reverse(head)struct example *head;{ struct example p1,p2; p1=(struct example *)malloc(size); p1->key=head->key; p1->next=N... [C++面试题]
-
编写类String 的构造函数、析构函数和赋值函数
已知类String 的原型为:class String{ public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数... [C++面试题]
-
定义一结构体数组表示分数,并求两个分数相加之和
解: #include #include struct fenshu{ int fz; int fm; }; main() { int I; struct fenshu f1,f2,result; printf(“input f1.f... [C++面试题]
-
NULL是什么,它是怎么定义的
作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。因此定义了预处理宏NULL (在 和其它几个头文件中) 为空指针常数, 通常是0 或者((void *)0) 。希望区别整数0 和空... [C++面试题]
-
什么是"引用"?申明和使用"引用"要注意哪些问题?
答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名... [C++面试题]