在C++中,"::"是作用域解析运算符。它用于指定命名空间、类、结构体或枚举的成员。通过使用"::",我们可以访问特定作用域中的变量、函数或类的成员。这个运算符在C++中非常重要,因为它允许我们在不同的作用域中定义相同的名称,以避免命名冲突。

41
这个符号是什么意思?
AirlineTicket::AirlineTicket()

2
@Paul R:没错。这是书单链接:https://dev59.com/_3RC5IYBdhLWcg3wK9yV - Fred Larson
15
@PaulR并不是每个浏览这个问题的人都是想学习C++。比如说,我只是偶然浏览了一些C++代码,想要了解程序大致做什么,并需要快速参考 :) - Ebony Maw
4个回答

54

:: 是作用域解析运算符,用于限定名称。在这种情况下,它用于将类AirlineTicket与构造函数AirlineTicket()分开,形成限定名称AirlineTicket::AirlineTicket()

每当您需要明确指出所指的内容时,都可以使用此运算符。以下是一些示例:

namespace foo {
  class bar;
}
class bar;
using namespace foo;

现在您必须使用作用域解析运算符来引用特定的 bar。 ::foo::bar 是完全限定名称。 ::bar 是另一个完全限定名称。(首先 :: 表示“全局命名空间”)
struct Base {
    void foo();
};
struct Derived : Base {
    void foo();
    void bar() {
       Derived::foo();
       Base::foo();
    }
};

这使用作用域解析符号来选择特定版本的foo。


16

在C++中,::被称为作用域限定符。它能够清晰地表明一个符号属于哪个命名空间或类。


3

它声明了一个命名空间。因此,在AirlineTicket::中,您可以调用AirlineTicket类的所有公共函数,并且AirlineTicket()是该命名空间中的函数(在本例中为构造函数)。


0
AirlineTicket就像是你的类的命名空间。在构造函数的实现中,你必须使用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接