[英]What does it mean that something is transitive in programming?
什么是编程方面的可传递性? 下面是一个示例(从此处开始 ):
use-directives是传递性的,用于非限定查找:
我知道该特定说明的详细说明,但是,我正在努力寻求与编程有关的更一般的解释。
二进制关系~
是传递的,当且仅当a ~ b
和b ~ c
意味着a ~ c
。
(例如,“比...高”是可传递的;“不是比...高”。)
在这种特殊情况下,A using
B,而B using
C,与直接using
C的A具有相同的效果。
传递性是形式逻辑中的术语。 这意味着“如果A与B具有传递关系,并且B与C具有相同关系,则A与C具有该关系”。
例如,平等是传递关系。 如果A == B
和B == C
那么传递性就是允许A == C
成立的原因。 类似地,小于是传递关系,这意味着如果A < B
和B < C
则A < C
。
对于using指令,其含义是,如果作用域包含一个提名命名空间名称的using指令,而该指令本身又包含第二个命名空间名称的using指令,则效果就好像第二个命名空间的using指令出现在第一个命名空间中一样。 。
在代码中,这意味着
namespace B
{
int foo;
}
namespace A
{
using namespace B;
}
using namespace A;
int main()
{
foo = 42; // resolves to B::foo
}
在上文中, foo
在main()
解析为A::foo
。 由于A
具有正在using namespace B
,因此main()
foo
也解析为B::foo
。 可传递性是使所有功能正常工作的正式名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.