递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 3393|回复: 8
打印 上一主题 下一主题

[视窗] PC通过指针模仿实现变量参考

[复制链接]

26

主题

1900

帖子

6924

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6924
跳转到指定楼层
楼主
发表于 2024-2-2 23:57:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式



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

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

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

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

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

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

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

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

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



回复

使用道具 举报

5

主题

81

帖子

920

积分

高级会员

Rank: 4

积分
920
沙发
发表于 2024-2-3 00:02:34 | 只看该作者
大佬v5 大佬v5 大佬v5
回复

使用道具 举报

2

主题

250

帖子

2035

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2035
板凳
发表于 2024-2-3 00:12:10 | 只看该作者
一目了然~赞~
回复

使用道具 举报

69

主题

447

帖子

3111

积分

论坛元老

Rank: 8Rank: 8

积分
3111
地板
发表于 2024-2-3 08:45:47 | 只看该作者
学习一下。。。
回复

使用道具 举报

23

主题

317

帖子

1471

积分

金牌会员

Rank: 6Rank: 6

积分
1471
5#
发表于 2024-4-8 19:25:36 | 只看该作者
6666666666666666
回复

使用道具 举报

25

主题

497

帖子

1808

积分

金牌会员

Rank: 6Rank: 6

积分
1808
6#
发表于 2024-4-9 21:55:58 | 只看该作者
包装类型,本身就支持 空对象,命令
回复

使用道具 举报

26

主题

1900

帖子

6924

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6924
7#
 楼主| 发表于 2024-4-9 22:12:14 | 只看该作者
qaz2428119 发表于 2024-4-9 21:55
包装类型,本身就支持 空对象,命令

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

使用道具 举报

25

主题

497

帖子

1808

积分

金牌会员

Rank: 6Rank: 6

积分
1808
8#
发表于 2024-4-11 09:37:07 | 只看该作者
本帖最后由 qaz2428119 于 2024-4-11 09:58 编辑
Xelloss0618 发表于 2024-4-9 22:12
只有基于火山对象类的类型,才能空对象,这里用别名封装的,并没有基于对象类,所以不能用空对象。 ...

并不是的,
包装指针类型,数值类型 也支持空对象,请查看下面的测试图片



包装类型测试.png (59.18 KB, 下载次数: 36)

包装类型测试.png
回复

使用道具 举报

26

主题

1900

帖子

6924

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6924
9#
 楼主| 发表于 2024-4-11 12:55:52 | 只看该作者
qaz2428119 发表于 2024-4-11 09:37
并不是的,
包装指针类型,数值类型 也支持空对象,请查看下面的测试图片

好吧,之前没仔细测试,别名类型为火山类和本地参考类型的,支持默认值空对象。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 23:10 , Processed in 0.102404 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表