wangvoldp 发表于 2024-4-6 14:16:26

★★★火山PC的参考(不知道怎么叫,C++是叫指针)★★★


[*]程序中定义了几十个窗口, 程序启动时候就需构造要全部窗口类, 窗口类里面会使类对象(比如Curl类或自定义类), 那么也要构造, 想想如果是个大工程, 一开始连个窗口都没显示呢, 就构造这么多东西了,窗口不创建也没必要去构造对不对, 虽说现在CPU强劲, 内存量大, 也不能这么浪费吧
[*]从一个数组中取个成员放到局部变量操作时, 这个成员如果是类对象, 放到局部变量后只是个复制品, 我们操作这个局部变量是修改不了那个成员的对象数组的成员,想要挂接事件、调用函数、修改成员都要给成员取出来,单一层的话还能凑乎,层数多了简直是地狱不停地取成员,火山本来就是将复杂的东西简单化,现在成了简单的东西更复杂了

-----------------------------------------------------------------------------------
例如我想写一个带分组的自定列表框
第一层组件布局器,里面放个数组用来存分组
    第二层分组类,里面放个数组用来存列表成员
      第三层列表成员类,1个编辑框和1个矩形类(可能还有其他)

写到最后我想操作第I个分组里的第J个成员里的矩形,我需要这么写
控件名.元素组.取成员(I).元素组.取成员(J).矩形.左边 = 1
控件名.元素组.取成员(I).元素组.取成员(J).矩形.顶边 = 1
上面只是例子实际还要操作其他, 每次操作都要不停地取取取

如果有了局部参考的话, 我们只需取出一次
矩形 = 控件名.元素组.取成员(I).元素组.取成员(J).矩形
矩形.左边 = 1
矩形.顶边 = 1
-------------------------局部参考实现---------------------------
实现局部变量参考打钩后, 将该变量变为指针, 以矩形为例
矩形 矩形类 参考
翻译后如下
矩形类 *矩形
----------------
矩形 = 控件名.元素组.取成员(I).元素组.取成员(J).矩形
翻译后如下
矩形 = &控件名.元素组.取成员(I).元素组.取成员(J).矩形
----------------
矩形.左边 = 1
矩形.顶边 = 1
矩形.重置(1,1,1,1)
翻译后如下
矩形->左边 = 1
矩形->顶边 = 1
矩形->重置(1,1,1,1)
-------------------------动态窗口实现---------------------------
定义窗口时使用参考, 因为是指针可以为空
窗口A 我的窗口类 参考
翻译为
我的窗口类 * 窗口A
----------------
当窗口需要显示时
窗口A = 我的窗口类(参数1, 参数2, 参数3)
翻译为
窗口A = new 我的窗口类(参数1, 参数2, 参数3)
-------
窗口A.创建主窗口(参数...)
翻译为
窗口A->创建主窗口(参数...)
-------------------------最后---------------------------
参考定义时变量多了个 *, 访问时给.换成->
这样函数返回如果是 @视窗.返回参考 = 真 的话也能完美接收
既能实现局部变量随意存取, 挂接事件, 又能实现类的动态创建
就算有1000个窗口,我不创建显示你, 你就不能浪费内存和CPU
另外类的动态创建接收构造参数是个问题, 因为火山的类里面已经有无参的构造函数了
此时涛哥要是能给函数重载和符号重载搞出来岂不是更美,从此火山PC再无短板了



350246356 发表于 2024-4-6 22:05:39

;P

htpmcj 发表于 2024-4-6 22:18:37

确实每次取代码太长了,效率应该也不行!

小烦 发表于 2024-4-6 22:22:52

;P      OK涛哥看不到      提议无效

我听到最多的就是没空搞    现在在忙着开发火山GO:)

shuimiao 发表于 2024-4-6 23:27:54

参考搞起来应该没什么瓶颈吧,不知道为什么一直不愿意?怕东怕西的,怕小白乱用,合着为了小白就可以无视进阶用户的使用需求。再怕那你弄个全局选项,是否开启参考功能啊,或者搞个包属性,是否开启参考,不是很简单的事吗

wangvoldp 发表于 2024-4-6 23:46:18

小烦 发表于 2024-4-6 22:22
OK涛哥看不到      提议无效

我听到最多的就是没空搞    现在在忙着开发火山GO ...

:D 帖子就是涛哥审核的他肯定看到了

Xelloss0618 发表于 2024-4-6 23:48:53

变量参考(引用)和指针是两回事,指针的话,2月份之后的版本已经可以实现了。
可以参考一下我这个例子
https://bbs.voldp.com/thread-20901-1-1.html

Xelloss0618 发表于 2024-4-6 23:50:56

shuimiao 发表于 2024-4-6 23:27
参考搞起来应该没什么瓶颈吧,不知道为什么一直不愿意?怕东怕西的,怕小白乱用,合着为了小白就可以无视进 ...

火山PC的局部变量参考不能做的原因并不是安全问题,实际上变量参考很安全。
根本原因是火山的表格式定义变量,跟C++变量参考必须初始化赋值,从设计上就不能共存。

wangvoldp 发表于 2024-4-6 23:56:51

Xelloss0618 发表于 2024-4-6 23:50
火山PC的局部变量参考不能做的原因并不是安全问题,实际上变量参考很安全。
根本原因是火山的表格式定义 ...

那可以用指针的, 引用需要再定义时初始化, 指针不用的, 可以先定义, 然后再赋值

wangvoldp 发表于 2024-4-7 00:11:00

Xelloss0618 发表于 2024-4-6 23:48
变量参考(引用)和指针是两回事,指针的话,2月份之后的版本已经可以实现了。
可以参考一下我这个例子
htt ...

动态窗口我现在也是用的模板
缺点是定义窗口后必须再多定义一个模板实现类
取出的时候需要一个属性读函数取出
页: [1] 2 3 4
查看完整版本: ★★★火山PC的参考(不知道怎么叫,C++是叫指针)★★★