2011-03-17 11 views
4

このシンボルは何を意味していますか?C++の「::」は何を意味していますか?

AirlineTicket::AirlineTicket() 
+6

あなたが質問をしているという事実は、C++の基本的な入門書をまだ読んでいないことを示唆しています。 –

+2

@ Paul R:そうです。ここでは、本のリストです:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list –

+0

ありがとう@フレッドラーソン –

答えて

24

:: scope resolution operator - 名前を修飾するために使用されます。この場合、修飾名あなたが参照しているものに関して、明示的である必要はいつでもあなたはこれを使用AirlineTicket::AirlineTicket()

を形成し、コンストラクタAirlineTicket()からクラスAirlineTicketを分離するために使用されます。いくつかのサンプル:

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

今、あなたは特定のバーを参照するためにスコープ解決演算子を使用するを持っている

::foo::barは完全修飾名です。

::barは、別の完全修飾名です。これはFOOの特定のバージョンを選択するために、スコープ解決を使用(::最初の手段「グローバルネームスペース」)

struct Base { 
    void foo(); 
}; 
struct Derived : Base { 
    void foo(); 
    void bar() { 
     Derived::foo(); 
     Base::foo(); 
    } 
}; 

0

AirlineTicketは、あなたのクラスの名前空間に似ています。あなたはコンストラクタの実装でそれを使用しなければなりません。

1

名前空間を宣言します。したがって、AirlineTicket ::では、AirlineTicketクラスのすべてのpublic関数を呼び出すことができ、AirlineTicket()はその名前空間内の関数(この場合はコンストラクタ)です。

関連する問題