質問: ### 前提・実現したいこと 構造体を定義した後の受け渡しについて知りたいです。 ### 作成した構造体について ``` typedef struct { int a; //箱A int b; //箱B bool c; //フラグ用C } TEST, *PTEST; 上記の構造体を定義したとします。 ``` ### 受け渡しについて ``` 実際にこの構造体を引数として渡す際に、(以下はヘッダーの定義) 1 bool CTestProc::Test_One( TEST& TestData); 2 bool CTestProc::Test_One( PTEST TestData); 上記の2通り?の書き方があるようなのですが、 ものによって、ビルドが通ったり、通らなかったりと、使い方、違いがわかりません。 ご教授お願い致します。 ``` ### 使用している言語、環境など Visual Studio2010 C++ MFCアプリケーションツール作成におけるプログラム内容についての件
回答: こんにちは。 1は参照で受け取り、2はポインタで受け取っています。 1にポインタで渡したり、2に非ポインタで渡すとエラーになります。 ``` bool CTestProc::Test_One( TEST& TestData); bool CTestProc::Test_Two( PTEST TestData); ``` とします。 また、CTestProcはnamespaceと仮定します。(クラスでも良いのですか、あれこれ想定しないと書けないので。) ``` void foo() { TEST data; CTestProc::Test_One(data); // OK CTestProc::Test_Two(&data); // OK CTestProc::Test_One(&data); // Error CTestProc::Test_Two(data); // Error } ```