c++基础一
1. const 有什么用途,至少说两种?
(1)定义常量(2)修饰函数的参数和返回值。被const修饰的东西可以受到强制保护,预防意外的变动,提高程序健壮性。
2.const与 #define 有什么区别?
const有数据类型 #define没有数据类型,调试工具可以对const常量进行调试,但不能对宏进行调试,即,const可以完全取代const。
3.内联函数和宏的差别?
内联函数和普通函数相比可以加快程序的运行速度,因为不需要中断调用,在编译的时候内联函数可以直接镶嵌到目标代码中,而宏只是一个简单的替换。
4.指针与引用的差别?
(1)非空区别:任何情况下应用都不能指向空值,一个引用必须总是指向某些对象(引用的效率比指针高)
5进行两个数的交换:
6.写出函数指针,函数返回指针,const指针,指向const的指针,指向const的const指针
void(*f)() void *f() const int * int * const const int * const
7.
8.迷途指针(悬浮指针):
悬浮指针是当对一个指针进行delete操作后-----这样就会释放它所指向的内存---并没有把它设置为空时产生的。,而后,如果你没有重新赋值就试图再使用该指针,引起的结果是不可预料的。总之,删除指针后,要小心不要再使用它。
9.空指针和迷途指针的区别?
10.c++中有malloc/free,为什么还需要new/delete?
malloc/free是标准库函数 new/delete是运算符,他们都可以用于申请动态内存和释放内存。
对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数,因为malloc/free是标准库函数,不在编译器控制权限之内,不能把执行构造函数和析构函数的任务强加于malloc/free。
11.指针和句柄的区别与联系:
句柄和指针是两个完全不同的概念,windows系统用句柄标记系统资源,隐藏系统信息,是32位的uint型,指针则标记某个物理内存地址。
12.面向对象技术的基础概念是什么?
类,对象、继承
13.c++中空类默认产生哪些类成员函数?
构造函数,析构函数、拷贝构造函数、赋值函数
14. 结构structure 和class 有什么区别?
struct 中变量默认是public class中变量默认是private;
struct也可以有构造函数,析构函数,之间也可以继承等等,但是struct默认的访问控制是public,class中默认访问控制是 private.
15.哪一种成员变量可以在同一个类的实例之间共享?
静态成员数据是在这个类的所有对象之间共享的。
16.
17.
18.
19.
20.