递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[视窗] 求助,假设有N个成员,取出所有类成员的值

[复制链接]

2

主题

11

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
跳转到指定楼层
楼主
发表于 2023-12-25 15:57:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 太早 于 2023-12-25 15:59 编辑

求助,假设有N个成员,取出所有类成员的值,有啥办法,除了.取对象数据 () 这个,这个会取出字节集类的长度。

回复

使用道具 举报

69

主题

989

帖子

4466

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4466
沙发
发表于 2023-12-25 16:05:14 | 只看该作者
读类地址。
c++的类,其实就是结构体的加强版。
如何读取结构体成员,可以参考:
https://bbs.voldp.com/thread-17261-1-1.html
回复

使用道具 举报

2

主题

11

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
板凳
 楼主| 发表于 2023-12-25 16:22:14 | 只看该作者
hcwanz 发表于 2023-12-25 16:05
读类地址。
c++的类,其实就是结构体的加强版。
如何读取结构体成员,可以参考:

完全看懵,我只想枚举火山类成员变量数量,然后把他值全取出来
回复

使用道具 举报

6

主题

152

帖子

1474

积分

金牌会员

Rank: 6Rank: 6

积分
1474
地板
发表于 2023-12-25 17:10:20 | 只看该作者
类是你自己定义的,不同成员类型占用内存大小不同,应该没法直接判断未知类的成员数量,你要是想定义一个可以枚举的动态成员,可以用哈希表或数组这些去实现
回复

使用道具 举报

50

主题

567

帖子

2473

积分

金牌会员

Rank: 6Rank: 6

积分
2473
5#
发表于 2023-12-25 18:02:14 | 只看该作者
你是说结构体,还是火山的类.火山没结构体.类的结构好像最少40字节起步!!你调试输出一下这些字节,那个指针到那个就是你想要的成员内容不就知了!?公开的成员和不公开的成员是分开的哦?不要认为你连着写成员.它就会连成一片哦!!
回复

使用道具 举报

2

主题

11

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
6#
 楼主| 发表于 2023-12-25 20:01:25 | 只看该作者
呵呵仙8 发表于 2023-12-25 18:02
你是说结构体,还是火山的类.火山没结构体.类的结构好像最少40字节起步!!你调试输出一下这些字节,那个指针到 ...

哎,就是没办法。不知道用啥方面能实现这功能
回复

使用道具 举报

2

主题

11

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
7#
 楼主| 发表于 2023-12-25 20:06:05 | 只看该作者
呵呵仙8 发表于 2023-12-25 18:02
你是说结构体,还是火山的类.火山没结构体.类的结构好像最少40字节起步!!你调试输出一下这些字节,那个指针到 ...

打开CE看那地址就一脸懵逼,按理说是不是可以取到成员变量的数量,还有成员变量的地址。哈哈哈
回复

使用道具 举报

50

主题

567

帖子

2473

积分

金牌会员

Rank: 6Rank: 6

积分
2473
8#
发表于 2023-12-25 21:13:15 | 只看该作者
你是说结构体吧?用于和第三方语言通信吗?可以用GetProcessHeap,HeapFree,HeapAlloc,GlobalSize.自己构建和对方一样结构的变量!!当然,前提是对方堆栈也是由这些函数产生的.目前发现易语言的变量就是这些函数创建的.不知C++是不是!不精通!!火山的变量不是这些函数产生的.所以,火山没有交换指针一说!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 22:20 , Processed in 0.091803 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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