Xelloss0618 发表于 2024-2-2 23:57:03

PC通过指针模仿实现变量参考




<火山程序 类型 = "通常" 版本 = 1 />

类 通用指针模板 <公开 折叠 @模板基础类 = 真 @别名 = "模板类型1*" @别名类型 = 本地参考类型>
{
    方法 值 <公开 静态 属性写 注释 = "参考指定的变量,所参考变量的生命周期应不要短于本指针." 注释 = "注意: 本属性写方法与\"参考\"方法一样,可以混用." 折叠>
    参数 欲操作本指针 <类型 = 通用指针模板 @视窗.后缀文本 = "&">
    参数 欲参考的变量 <类型 = 模板类型1>
    {
      @ @<欲操作本指针> = &@<欲参考的变量>;
    }

    方法 值 <公开 静态 属性读 类型 = 模板类型1 注释 = "解引用指针,返回本指针所参考的变量." 注释 = "注意:" 注释 = " 1. 本属性读方法与\"解引用\"方法一样,可以混用;"
            注释 = " 2. 指针为空时请勿使用本属性读方法,会直接崩溃!!!" 注释 = " 3. 所参考变量不能在调用本方法前被释放,否则也会直接崩溃!!!" 折叠 @视窗.返回参考 = 真
            @禁止流程检查 = 真>
    参数 欲操作本指针 <类型 = 通用指针模板>
    {
      @ return *@<欲操作本指针>;
    }

    方法 参考 <公开 静态 注释 = "参考指定的变量,所参考变量的生命周期应不要短于本指针." 折叠 @嵌入式方法 = "">
    参数 欲操作本指针 <类型 = 通用指针模板>
    参数 欲参考的变量 <类型 = 模板类型1 @需求类型 = 可写入变量>
    {
      @ @<欲操作本指针> = &@<欲参考的变量>
    }

    方法 解引用 <公开 静态 类型 = 模板类型1 注释 = "解引用指针,返回本指针所参考的变量." 注释 = "注意:" 注释 = " 1. 指针为空时请勿使用本方法,会直接崩溃!!!"
            注释 = " 2. 所参考变量不能在调用本方法前被释放,否则也会直接崩溃!!!" 折叠 @嵌入式方法 = "" @视窗.返回参考 = 真>
    参数 欲操作本指针 <类型 = 通用指针模板>
    {
      @ *@<欲操作本指针>
    }

    方法 是否为空 <公开 静态 类型 = 逻辑型 注释 = "返回本指针是否为空,空指针时请勿解引用." 折叠 @嵌入式方法 = "">
    参数 欲操作本指针 <类型 = 通用指针模板>
    {
      @ @<欲操作本指针> == nullptr
    }

    方法 置指针 <公开 静态 注释 = "将本指针设置为指定的值,请自行确保提供的指针值有效." 折叠 @嵌入式方法 = "">
    参数 欲操作本指针 <类型 = 通用指针模板>
    参数 欲参考的地址 <类型 = 变整数>
    {
      @ @<欲操作本指针> = (@dt<通用指针模板>)@<欲参考的地址>
    }

    方法 取指针 <公开 静态 类型 = 变整数 注释 = "返回变整数类型的指针地址" 折叠 @嵌入式方法 = "">
    参数 欲操作本指针 <类型 = 通用指针模板>
    {
      @ (INT_P)@<欲操作本指针>
    }
}

类 字节集指针 <公开 基础类 = 通用指针模板 @模板实现类 = "字节集类">



aaa2778 发表于 2024-2-3 00:02:34

大佬v5 大佬v5 大佬v5

君安光电科技 发表于 2024-2-3 00:12:10

一目了然~赞~

itismine 发表于 2024-2-3 08:45:47

学习一下。。。

wangvoldp 发表于 2024-4-8 19:25:36

6666666666666666

qaz2428119 发表于 2024-4-9 21:55:58

包装类型,本身就支持 空对象,命令

Xelloss0618 发表于 2024-4-9 22:12:14

qaz2428119 发表于 2024-4-9 21:55
包装类型,本身就支持 空对象,命令

只有基于火山对象类的类型,才能空对象,这里用别名封装的,并没有基于对象类,所以不能用空对象。

qaz2428119 发表于 2024-4-11 09:37:07

本帖最后由 qaz2428119 于 2024-4-11 09:58 编辑

Xelloss0618 发表于 2024-4-9 22:12
只有基于火山对象类的类型,才能空对象,这里用别名封装的,并没有基于对象类,所以不能用空对象。 ...
并不是的,
包装指针类型,数值类型 也支持空对象,请查看下面的测试图片



Xelloss0618 发表于 2024-4-11 12:55:52

qaz2428119 发表于 2024-4-11 09:37
并不是的,
包装指针类型,数值类型 也支持空对象,请查看下面的测试图片



好吧,之前没仔细测试,别名类型为火山类和本地参考类型的,支持默认值空对象。
页: [1]
查看完整版本: PC通过指针模仿实现变量参考