にインライン友人としての機能を宣言私はこのように宣言されたクラスを持っています。 この関数をインラインフレンドとネームスペースの外に宣言する方法はありますか?ここでは異なる名前空間
Q
は異なる名前空間
1
A
答えて
3
は、ソリューションです:
namespace nsp1
{
class A;
}
inline void DoSomething(const nsp1::A & a);
namespace nsp1
{
class A
{
public :
inline friend void ::DoSomething(const nsp1::A & a);
private :
A();
int a;
};
}
inline void DoSomething(const nsp1::A & a)
{
std::cout<<a.a<<std::endl;//a.a is private!
}
2
一度にそれを行うことはできません。最初に名前空間と関数を宣言してから、関数にふさわしいクラスを定義し、関数を定義する必要があります。
namespace nsp2
{
void DoSomething();
}
namespace nsp1
{
class A
{
public :
friend void nsp2::DoSomething();
private :
A();
int a;
};
}
namespace nsp2
{
inline void DoSomething()
{
nsp1::A a;
a.a = 42;
}
}
関連する問題
- 1. 異なるJS名前空間宣言
- 2. 異なる名前空間から名前空間のリソースを作成する
- 3. python etree.ElementTreeは異なる名前空間で解析します
- 4. 名前空間なしのGroovy XMLSlurper名前空間エラー
- 5. 名前空間名は「MvcSiteMapProvider」
- 6. Socket.IOが異なる名前空間でクエリパラメータを混ぜる
- 7. 異なる名前空間でデータコントラクトを共有する
- 8. System.Collectionsは「システム名前空間の名前空間」ですか?
- 9. 異なる名前空間にhaskellフィールド名を配置する方法は?
- 10. 名前空間
- 11. 名前空間
- 12. 名前空間
- 13. 名前空間
- 14. SelectSingleNode名前空間なし
- 15. Laravel異なる名前空間/ルートグループの別の404ページ
- 16. XSLT:同じ名前空間に異なる値
- 17. 異なる名前空間の派生クラス
- 18. 異なる名前空間で関数を呼び出すphp
- 19. 異なるstruts.xmlファイル内のStruts2の同じ名前空間
- 20. 異なる名前空間の列挙型へのアクセス
- 21. 異なる名前空間を持つAvroスキーマの解決
- 22. 同じタイプで、異なる名前空間。
- 23. 異なる名前空間を持つCaliburn Micro ViewLocator
- 24. はNDBは、名前空間
- 25. 予期しない名前空間のインポートインポート/名前空間なし
- 26. は、XML名前空間
- 27. SPARQLは、名前空間
- 28. MVC XSD名前空間は
- 29. はなぜデフォルトの名前空間
- 30. angularjs名前空間
'DoSomething()'は、 'A'型の引数を取っていないので、' A'の 'friend'を作る点は何ですか?不思議なんだけど! – Nawaz
@Nawaz DoSomething()は、タイプAの静的オブジェクトを作成します。 –