-
C++与C的比较
C++与C的最大区别是:C++是面向对象的编程语言,C是面向过程的编程语言。C++拥有封装、继承、多态等OO编程思想。C语言不具备这些内置功能。虽然C语言有结构体struct,可以将数据放在统一的结构中。但它不能控制外部用户对结构体内数据的访问权限。不像C++可以提供public、protected、private限定符来控制数据的访问权限。所以struct只是将数据打包,而class是将数据封装。 -
不透明指针的作用
不透明指针可以在C语言中实现数据的封装。 -
什么是不透明指针
C语言中,我们可以在未定义结构体时先声明此结构体的指针类型。形式如下:typedef struct Point* PointPtr; PointPtr pPoint = nullptr;
此时PointPtr就是不透明指针类型。pPoint就是不透明指针。由于未定义结构体,所以pPoint引用不到Point结构体的具体数据。也就相当于class的private属性。从而实现了封装。
-
应用方式
提供一个.h文件。文件中定义不透明指针类型。并extern几个全局函数提供真实数据的访问方法以及结构体开辟空间、释放空间的方法。.c文件中定义结构体并实现这些方法。代码如下:
opacityPoint.h:#pragma once /************************************************ // 不透明指针 // 用C的方式实现封装即Private属性 // ************************************************/ typedef struct Point* PointPtr; exter
不透明指针_C语言
最新推荐文章于 2025-04-15 19:48:17 发布