にインライン友人としての機能を宣言私はこのように宣言されたクラスを持っています。 この関数をインラインフレンドとネームスペースの外に宣言する方法はありますか?ここでは異なる名前空間
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. 異なる名前空間から名前空間のリソースを作成する
- 2. 名前空間なしのGroovy XMLSlurper名前空間エラー
- 3. 名前空間
- 4. 異なる名前空間にhaskellフィールド名を配置する方法は?
- 5. SelectSingleNode名前空間なし
- 6. 異なる名前空間の列挙型へのアクセス
- 7. XSLT:同じ名前空間に異なる値
- 8. 異なる名前空間の派生クラス
- 9. 異なるstruts.xmlファイル内のStruts2の同じ名前空間
- 10. はNDBは、名前空間
- 11. は、XML名前空間
- 12. html:FBML名前空間
- 13. 名前空間&__autoload
- 14. WPF:XAML名前空間
- 15. 名前空間dict?
- 16. 名前空間カスタムイベントトリガー
- 17. IPython.parallel名前空間
- 18. IInvokeProvider名前空間?
- 19. angularjs名前空間
- 20. 無名名前空間
- 21. 異なるアセンブリ内のシステム名前空間型とユーザー定義型の間の名前の競合
- 22. 型または名前空間名「PersistentBagは」名前空間に存在しない「NHibernate.Collection」
- 23. なぜMVA名前空間内のCompareAttributeは、DataAnnotations名前空間ではないのですか?
- 24. Entity Frameworkのコードファーストと同じ名前を持つが、異なる名前空間内の2つのエンティティは
- 25. CS0234 \t型または名前空間名「Owin」の名前空間に存在しない「Microsoftの
- 26. 型または名前空間名「ServiceBus」名前空間に存在していない「マイクロソフト」
- 27. Rails 3.1に名前空間を含める名前空間アプリケーションのHAMLビュー
- 28. ResizeStop名前空間の汚染なし
- 29. 一時的な名前空間
- 30. 名前空間のないC#コード?
'DoSomething()'は、 'A'型の引数を取っていないので、' A'の 'friend'を作る点は何ですか?不思議なんだけど! – Nawaz
@Nawaz DoSomething()は、タイプAの静的オブジェクトを作成します。 –