递归火山软件开发平台

标题: 【已解决】默认值如何封装 [打印本页]

作者: 沉默流星    时间: 昨天 12:06
标题: 【已解决】默认值如何封装
本帖最后由 沉默流星 于 2025-5-11 17:14 编辑

在封装函数时,火山的默认值只支持是常量,而常量类型又必须是基本数据类型。

代码如下:
  1. AcGeContext
  2. {
  3.     // System wide default tolerance.
  4.     //
  5.     GE_DLLDATAEXIMP static AcGeTol     gTol;
复制代码
这个函数当中有默认值
(, 下载次数: 11)



报错相关的内容
(, 下载次数: 13)

(, 下载次数: 12)

作者: hcwanz    时间: 昨天 12:24
这是静态变量吧
作者: 沉默流星    时间: 昨天 12:28
本帖最后由 沉默流星 于 2025-5-11 12:30 编辑
hcwanz 发表于 2025-5-11 12:24
这是静态变量吧

对,但我说了@默认值这个属性只认常量,变量他不认识
作者: 沉默流星    时间: 昨天 12:38
现在我只想到两种方案
1.不写默认值,调用时把这个参数需要的数据传进去
2.写默认值,但这个默认值是在嵌入里面写死,用户不能再对这个参数进行操作

作者: hcwanz    时间: 昨天 12:40
沉默流星 发表于 2025-5-11 12:38
现在我只想到两种方案
1.不写默认值,调用时把这个参数需要的数据传进去
2.写默认值,但这个默认值是在嵌入 ...

多加个判断参数
作者: 沉默流星    时间: 昨天 12:41
hcwanz 发表于 2025-5-11 12:40
多加个判断参数

怎么写?
作者: hcwanz    时间: 昨天 12:52
沉默流星 发表于 2025-5-11 12:41
怎么写?

就是多写个逻辑型的参数, 然后根据这个逻辑参数, 决定是用传入的参数, 还是用静态变量.
作者: 沉默流星    时间: 昨天 13:01
hcwanz 发表于 2025-5-11 12:52
就是多写个逻辑型的参数, 然后根据这个逻辑参数, 决定是用传入的参数, 还是用静态变量. ...

没明白
作者: niuyanbo2021    时间: 昨天 13:20
看在哪里能加个逻辑型参数,然后判断选择
作者: 沉默流星    时间: 昨天 13:29
niuyanbo2021 发表于 2025-5-11 13:20
看在哪里能加个逻辑型参数,然后判断选择

应该不行,这个函数不是@禁止流程检查形式的,而是@嵌入式方法。
他们的表现形式不一样。
作者: hcwanz    时间: 昨天 14:58
沉默流星 发表于 2025-5-11 13:29
应该不行,这个函数不是@禁止流程检查形式的,而是@嵌入式方法。
他们的表现形式不一样。 ...

@ 原生函数 (@<参数1>, @<逻辑参数> ? 原生静态变量 : @<参数三>)
作者: 沉默流星    时间: 昨天 15:12
hcwanz 发表于 2025-5-11 14:58
@ 原生函数 (@, @ ? 原生静态变量 : @)

这样应该不行
(, 下载次数: 6)

错误: 调用"是否等于"时所需求的第4个参数"容差"的数据不能被省略

作者: hcwanz    时间: 昨天 15:28
沉默流星 发表于 2025-5-11 15:12
这样应该不行

你随便整个默认值呗
作者: 沉默流星    时间: 昨天 15:59
hcwanz 发表于 2025-5-11 15:28
你随便整个默认值呗

这样还是逃不过,@默认值问题啊。
如果随便给默认值,就会出现下面的错误
  1. .\vpkg_main.cpp(201): error C2101: 常量上的“&”
复制代码
(, 下载次数: 0)

作者: 沉默流星    时间: 昨天 16:01
hcwanz 发表于 2025-5-11 15:28
你随便整个默认值呗

这样好像报错
  1. .\vpkg_main.cpp(201): error C2101: 常量上的“&”
复制代码
  1. //这个是火山输出的C++源码 201行
复制代码



作者: 沉默流星    时间: 昨天 16:03
hcwanz 发表于 2025-5-11 15:28
你随便整个默认值呗

请查阅,因发一次就进审核,可能会有重复回复的 (, 下载次数: 1)

(, 下载次数: 2)

作者: Xelloss0618    时间: 昨天 16:03
我之前不是说过,别名类型中,本地值类型和本地整数基本类型支持写常量么。
作者: 沉默流星    时间: 昨天 16:13
Xelloss0618 发表于 2025-5-11 16:03
我之前不是说过,别名类型中,本地值类型和本地整数基本类型支持写常量么。 ...

老大您的确说过,但常量可不支持类型为其他类型,只支持基本数据类型
(, 下载次数: 1)


作者: Xelloss0618    时间: 昨天 16:37
沉默流星 发表于 2025-5-11 16:13
老大您的确说过,但常量可不支持类型为其他类型,只支持基本数据类型

AcGe容差 不是本地值类型啊……
你这个 AcGe上下文 才是本地值
作者: 沉默流星    时间: 昨天 16:40
Xelloss0618 发表于 2025-5-11 16:37
AcGe容差 不是本地值类型啊……
你这个 AcGe上下文 才是本地值

哪到底改那个为本地值?还是这俩都改成本地值
作者: Xelloss0618    时间: 昨天 16:41
沉默流星 发表于 2025-5-11 16:40
哪到底改那个为本地值?还是这俩都改成本地值

哪个需要常量和默认值,就改成本地值,但要注意本地值不是默认参考传参
作者: 沉默流星    时间: 昨天 16:46
Xelloss0618 发表于 2025-5-11 16:41
哪个需要常量和默认值,就改成本地值,但要注意本地值不是默认参考传参 ...

明白了,谢谢老大




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4