今日私は友人の機能に疑問があります。 2つのクラスに同じ機能がありますか? friend void f1();
クラスAとクラスBで宣言してくださいこれは可能ですか?その場合、関数f1()は2つのクラスのメンバーにアクセスできますか?2つのクラスがフレンド機能を共有できますか?
答えて
の機能の制限はありません。class
の場合は問題ありません。
さて、関数に名前を付けることができる必要がありますが、それは自然な制限です。例えば。 'struct {静的void foo(); };または他の翻訳単位の匿名名前空間で機能します。 – MSalters
の例では、このベストを説明します:
class B; //defined later
void add(A,B);
class A{
private:
int a;
public:
A(){
a = 100;
}
friend void add(A,B);
};
class B{
private:
int b;
public:
B(){
b = 100;
}
friend void add(A,B);
};
void add (A Aobj, B Bobj){
cout << (Aobj.a + Bobj.b);
}
main(){
A A1;
B B1;
add(A1,B1);
return 0;
}
は、この情報がお役に立てば幸い!上記のコードに
ありがとうございました非常に男の例は非常に素晴らしく、理解しやすいでした – user2236974
あなたはようこそ! – iluvthee07
補正
#include<iostream>
using namespace std;
class B; //defined later
class A; //correction (A also need be specified)
void add(A,B);
class A{
private:
int a;
public:
A(){
a = 100;
}
friend void add(A,B);
};
class B{
private:
int b;
public:
B(){
b = 100;
}
friend void add(A,B);
};
void add (A Aobj, B Bobj){
cout << (Aobj.a + Bobj.b);
}
main(){
A A1;
B B1;
add(A1,B1);
return 0;
}
#include<iostream>
using namespace std;
class first
{
friend void getdata(first object1, int i);
};
class second
{
friend void getdata(second object2, int j);
};
getdata(first object1, int i, second object2, int j)
{
cout<<i+j;
}
main()
{
first object1;
second object2;
getdata(object1, 5, object2, 7);
}
- 1. 2つのクラス間で機能を共有する
- 2. フレンド機能はクラス内のプライベートデータを変更できますか?
- 3. 2つのフォルダが同じlocalStorageを共有できますか?
- 4. フレンド機能
- 5. 共有機能
- 6. 共有機能
- 7. フレンド機能プライベートデータメンバーにアクセスできない
- 8. java.util.loggingは2つのクラス間でロガーを共有できません
- 9. FBMLの共有ボタンのMetaクラスが機能しない
- 10. フレンド機能を使用すると、クラスのプライベートメンバーを上書きできますか?
- 11. Pythonで2つのクラス間で変数を共有する
- 12. 2つのクラス間でのみ変数を共有する - Java
- 13. 2つの関連モデルが同じ結合名を共有できますか?
- 14. 2つのproject.jsonファイルが同じコードベースを共有できますか?
- 15. 2つのascxファイルが同じコードファイルを共有できますか?
- 16. Facebook - フレンドの機能を参照する
- 17. 同じメンバーを共有する2つのC++クラスのメモリレイアウト
- 18. 2つのサービスがSolr(Sunspot経由)を共有しますか?
- 19. 画像共有機能
- 20. 特注/コメント/共有機能
- 21. 共有機能は、DDD
- 22. URLを共有するときにプレビューが機能しない
- 23. AngularJS:コントローラ間での機能の共有
- 24. クラスとフレンド機能を使用したリンクリスト:セグメンテーションエラー
- 25. 2つの異なるルートの2つのコントローラが同じサービスを共有できますか?
- 26. iOS共有拡張機能のNSExtensionActivationRuleが機能しない
- 27. 拡張機能間でUserDefaultsを共有
- 28. plt.subplot軸共有が機能しない
- 29. 異なるアクティビティタイプ間で共通の機能を共有する
- 30. CakePHPにフレンド機能を追加する
はいことが可能です。はい、 'f1()'は両方のクラスのメンバーにアクセスできます。 – juanchopanza
簡単な例をコンパイルしようとしましたか?これはテストするのが簡単なようです。 – Max
これは可能ではないと思いますか? – stijn