ElevHe

博客园 首页 新随笔 联系 订阅 管理

 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

 

内联函数和宏函数

 

posted on 2023-04-08 20:33  ElevHe  阅读(19)  评论(0)    收藏  举报