zhitian 发表于 2026-5-28 09:43:35

请问嵌入式成员变量初始化不能存储数据是什么原因?

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

包 火山.程序

类 启动类 <公开 基础类 = 窗口程序类>
{
    方法 启动方法 <公开 类型 = 整数>
    {
      变量 局部变量 <类型 = 测试类A>
      局部变量 = 方法_实例化测试类A ()

      局部变量.方法_开始调用 ()

      返回 (1)
    }

    方法 方法_实例化测试类A <类型 = 测试类A @禁止流程检查 = 真>
    {
      @ return @dt<测试类A>(199);
    }
}

# ===

类 测试类A
{
    变量 变量A <类型 = 整数>

    # @ <include>
    # @ int bianliang_A = 0;
    # @ @dt<测试类A> (int ptr) : @dt<测试类A>(){
    #
    # @ bianliang_A = ptr;
    # @ @<变量A> = ptr;
    #
    # @ }
    # @ </include>

    方法 方法_开始调用 <公开>
    {
      变量 局部变量 <类型 = 整数>
      @ @<局部变量> = bianliang_A;
      调试输出 (变量A, 局部变量)
    }
}


上面的代码请帮忙看下为什么火山版本的成员变量【变量A】可以接收到数据(调试输出是:199),嵌入式的变量【bianliang_A】却不能接收数据(调试输出是:0)

Xelloss0618 发表于 2026-5-28 10:00:47

你的类变量经过了复制赋值。
复制时,火山会自动处理表格成员变量的相关赋值,而嵌入语句定义的成员变量,是需要你自己处理的。

<include>里加入下面的代码:
void @an<_CopySelfFromExtra> (const @sn<current_class>& objCopyFrom) {
        bianliang_A = objCopyFrom.bianliang_A;
}
页: [1]
查看完整版本: 请问嵌入式成员变量初始化不能存储数据是什么原因?