请问嵌入式声明的变量作用域是怎么样的?
<火山程序 类型 = "通常" 版本 = 1 />包 火山.程序
类 启动类 <公开 基础类 = 窗口程序类>
{
方法 启动方法 <公开 类型 = 整数>
{
测试类B.方法_开始调用 ()
方法_实例化测试类A ()
返回 (1)
}
方法 方法_实例化测试类A
{
变量 实例化测试类A <类型 = 测试类A>
}
}
# ===
类 测试类A
{
# @ int uuyyttt = 299;
}
类 测试类B
{
方法 方法_开始调用 <公开 静态>
{
变量 局部变量 <类型 = 整数>
@ @<局部变量> = uuyyttt;
可跳转调试输出 (局部变量)
}
}
上面的代码我是在【测试类A】里面声明的变量,为何在测试类B里面可以直接使用?
火山代码翻译后的C++代码,结构一般是这样的:
1、每个类都有一个单独的头文件(.h);
2、每个火山源文件(.v、.wsc)生成一个 cpp 源文件;
你的嵌入变量 uuyyttt,没有用 <include></include> 包围,所以它并不是【测试类A】的成员变量,而是直接定义在 cpp 源文件里。
而你定义的两个类都在同一个火山源文件里,所以它们的实现代码在 cpp 源文件里的作用域是同级。 通过生成的cpp上看,这个变量作用域属于命名空间,也就是说这个命令空间下的所有类都可以调用,是有点奇怪。 全局,放在include下就不会了
页:
[1]