fooという名前のクラスがあり、そのデータを表示するために使用されるほとんどのデータとクラスバーが含まれているとします。 foobarという名前のfooのオブジェクトインスタンスがある場合、bar :: display()にどのように渡しますか? void bar :: display(foobar &テスト)のようなもの?C++でクラスオブジェクトを引数として渡す
4
A
答えて
9
はい、ほぼあります。または、可能であれば、const参照を使用して、メソッドが引数として渡されたオブジェクトを変更しないことを通知します。
class A;
class B
{
// ...
void some_method(const A& obj)
{
obj.do_something();
}
// ...
};
1
#include <iostream>
class Foo
{
int m_a[2];
public:
Foo(int a=10, int b=20) ;
void accessFooData() const;
};
Foo::Foo(int a, int b)
{
m_a[0] = a;
m_a[1] = b;
}
void Foo::accessFooData() const
{
std::cout << "\n Foo Data:\t" << m_a[0] << "\t" << m_a[1] << std::endl;
}
class Bar
{
public:
Bar(const Foo& obj);
};
Bar::Bar(const Foo& obj)
{
obj.accessFooData();
// i) Since you are receiving a const reference, you can access only const member functions of obj.
// ii) Just having an obj instance, doesn't mean you have access to everything from here i.e., in this scope. It depends on the access specifiers. For example, m_a array cannot be accessed here since it is private.
}
int main(void)
{
Foo objOne;
Bar objTwo(objOne) ;
return 0 ;
}
この情報がお役に立てば幸いです。
0
したがって、クラスオブジェクト(それはあなたが求めているもの)を関数の引数として渡す方法は2種類あります。 i)関数によって変更があった場合、この方法でオブジェクトのコピーを関数に渡しますオブジェクトの元のアドレスを元のオブジェクトに反映させません。
ii)関数の引数としてオブジェクトのベースアドレスを渡します。呼び出し元関数によってオブジェクトに変更が加えられた場合、thsiメソッドでは、もともとオブジェクトに反映されます。
たとえば、this linkをご覧ください。これは、値渡しの使用方法を明確に示しており、参照渡しはJim Brissomの回答で明確に示されています。
関連する問題
- 1. "this"を引数として渡す - C#
- 2. C++で関数を引数として渡すときのエラー
- 3. Cで関数の引数としてENUMを渡す方法
- 4. C++引数としてCスタイルの文字列を渡す
- 5. C++で引数としてスマートポインタのコンテナを渡す
- 6. C#で引数としてリストを渡す方法は?
- 7. C#で引数として匿名オブジェクトを渡す
- 8. 引数を引数として渡します
- 9. 引数をクラスとして渡す
- 10. メソッドを引数として渡す
- 11. Python:パスを引数として渡す
- 12. 引数を渡すC - > NASM - > C
- 13. matlabで関数の引数としてコロンを渡す
- 14. Pythonで引数としてメンバ関数を渡すには?
- 15. Cライブラリ関数の引数を渡す引数の検出
- 16. 引数としてC++クラスタイプ
- 17. テンプレート引数へのポインタを関数の引数として渡しますか?
- 18. Cの関数引数として多次元配列を渡す
- 19. Cで引数として渡されるファイルを作成する
- 20. Cでメソッド内の引数として参照を渡す方法#
- 21. 引渡しの引数が空です
- 22. Javascriptの引数として関数を渡します。
- 23. C#Sysinternals Autologon.exeに引数を渡す
- 24. C++クラスオブジェクトのポインタとアクセスメンバ関数
- 25. pexでGUIDをPex引数として渡す方法
- 26. Netbeansでコマンドライン引数としてファイルを渡す方法
- 27. Rubyでメソッドの引数としてオブジェクトを渡す方法
- 28. 関数の引数としてオブジェクトを渡す
- 29. Swiftの関数引数としてゲッターを渡す
- 30. インライン関数を引数として渡す