このトピックについてはリフレッシャーが必要ですが、実際には答えをオンラインで見つけることはできません。あなたはDog
C++ - クラスの名前空間
class Dog
{
public:
void Dog::woof()
{
return;
}
};
と呼ばれるクラスを持っている場合は
は
Dog::
とDog
開始の内部ひとつひとつ機能しなければなりませんか?それは私がいつもそれをしてきた方法ですが、私はそこにあると尋ねたいです状況はそうではありませんか?Dog::
を入れないと、Javaからの静的メソッドのように使うことができますか? Ex。Dog.woof();
代わりのmyDogObj.woof();
たちは
::
演算子を使用しているという事実はWoof
がDog
が名前空間でなくても、Dog
の名前空間にあることを意味していますか?それが本当であれば、クラスは自動的に名前空間として自分自身を作成するのでしょうか?は、なぜ我々はそれが
class Dog
の内だという事実は、本質的に、既に述べながらDog
に属している方法だとC++を伝えるためにDog::
を置けばいいの?冗長ではないですか?Dog::woof
は、名前空間またはネストされた名前空間の内部で何らかの形で宣言することができ、いずれの場合はありますか? Ex。Park::Trail::Dog::woof() { return; }
あなたがしなければならないでしょう:
class Dog
{
public:
namespace Park
{
namespace Trail
{
void Dog::woof()
{
return;
}
}
}
};
最後の例はナンセンスです。クラスの内部に*名前空間を持つことはできません。 – molbdnilo
クラス内で 'woof'を宣言してクラスの外に定義するとどうなるでしょうか?その関数定義を名前空間の中に入れますか? Ex。 'ネームスペースPark {void Dog :: woof(){return; }} ' – Hatefiend
' Dog'の宣言が 'Park'名前空間の中になければ、動作しません。ジャスはそれを試してください、あなたが表示されます。 – Ceros