首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资格是什么意思?

问资格是什么意思?
EN

Stack Overflow用户
提问于 2013-09-14 14:58:32
回答 2查看 2.5K关注 0票数 9

在阅读文章、手册等时.关于编程,我总是碰到qualified这个词。与java中一样,完全限定的类名将是com.example.Class。阅读这文章时,将C++中的范围解析操作符::定义为用于限定隐藏名称,以便您仍然可以使用它们。这有什么定义吗?因为它似乎每次都在不同的上下文中使用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-14 15:02:55

在计算机编程中,完全限定名是一个明确的名称,它指定调用所引用的对象、函数或变量,而不考虑调用的上下文。在层次结构中,当一个名称“是完整的,它包括(a)在给定元素之上的层次结构序列中的所有名称,以及(b)给定元素本身的名称”时,它是完全限定的。因此,完全限定的名称显式地引用了名称空间,否则,由于调用的范围,这些名称空间将是隐式的。虽然总是为了消除歧义,但这可能意味着取决于上下文的不同事情。

来源维基百科

简而言之,它的意思是,

您可以在项目中有一个名为Math的类,但是Math也已经存在于Java中。

因此,为了明确地标识实际引用的类,还需要用包限定名称:

代码语言:javascript
复制
java.lang.Math //refers to java class Math
org.myproject.Math //refers to your project Math class
票数 12
EN

Stack Overflow用户

发布于 2013-09-14 18:22:45

韦伯斯特

资格的全面定义 及物动词1a:从一般形式减少到特定形式或限制形式:修改b:使不那么苛刻或严格:适度c:改变d的强度或味道:限制或修改(名词)的含义2:通过命名一个属性来表征:描述3a:通过训练、技能或能力来适应某一特殊目的b (1):宣布有能力或足够:证明(2):投资于法律行为能力:

第1及2条适用。Java和C++都有作用域/名称空间,“限定”意味着引入足够的作用域来区分潜在的候选对象。

C.f.:如果你有两个班级,有一个叫"read“的成员。

代码语言:javascript
复制
class Foo {
    void read();
};

class Bar {
    void read();
};

在实现文件中,您将实现这两个函数。但是如果你写(C++)

代码语言:javascript
复制
void read() {}

这是有效的,但是它在全局命名空间中创建了一个函数,而不是实现这两个函数中的一个。在类Foo定义中编写的相同代码将实现Foo::read。

因此,要在类定义之外实现我们的成员函数,我们必须限定我们正在实现的容器路径的属性--从一般的属性减少,命名容器路径的属性。

代码语言:javascript
复制
void Foo::read() {}
void Bar::read() {}

全局命名空间为"::",因此,如果您试图使用该名称空间,甚至可以显式显示:

代码语言:javascript
复制
void ::read() {}  // note: this name is already taken by stdio's read() :)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18803036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档