C++中 struct 和 class 的区别
struct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装;struct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装;在继承关系中,struct 默认是公有继承,而 class 是私有继承。
在C++中使用结构体,可以省略 struct 关键字直接使用。
一个C++程序从源码到执行文件,有四个过程,预编译、编译、汇编、链接。
C++规定静态成员函数没有this指针.
函数指针的应用场景:回调(callback)。我们调用别人提供的 API函数(Application Programming Interface,应用程序编程接口),称为Call;如果别人的库里面调用我们的函数,就叫Callback。
//以库函数qsort排序函数为例,它的原型如下: void qsort(void *base,//void*类型,代表原始数组 size_t nmemb, //第二个是size_t类型,代表数据数量 size_t size, //第三个是size_t类型,代表单个数据占用空间大小 int(*compar)(const void *,const void *)//第四个参数是函数指针 ); //第四个参数告诉qsort,应该使用哪个函数来比较元素,即只要我们告诉qsort比较大小的规则,它就可以帮我们对任意数据类型的数组进行排序。在库函数qsort调用我们自定义的比较函数,这就是回调的应用。 //示例 int num[100]; int cmp_int(const void* _a , const void* _b){//参数格式固定 int* a = (int*)_a; //强制类型转换 int* b = (int*)_b; return *a - *b; } qsort(num,100,sizeof(num[0]),cmp_int); //回调
野指针避免办法:
初始化置NULL;申请内存后判空;指针释放后置NULL
内联函数和宏函数