詳しくはこちらトピックに返信するユーザー名:メールアドレス:件名:C++言語のヘッダーファイルの拡張子をいずれか一つ答えよ(半角):答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。friendを外してコンパイルしてみるといい。コンパイルエラーになるはず。friendをつけるとコンパイルが通り、かつその関数内でよそのクラスのprivate変数にアクセスできる。参照渡しでも値渡しでも、private変数にアクセスできているのは同じだ。違いは、呼び出し元に返るかだけでこの点はfriend関係ない。書いてあるのなら、それは間違い。No.3に掲示されたソースのコメントにはそう書いてないよね。皆様分かりやすい説明をありがとうございます。フレンドクラスでも変数の寿命が適応するのですね・・・とても良い勉強になりました。皆様分かりやすい説明をありがとうございます。フレンドクラスでも変数の寿命が適応するのですね・・・とても良い勉強になりました。いう意味friendを外してコンパイルしてみるといい。コンパイルエラーになるはず。friendをつけるとコンパイルが通り、かつその関数内でよそのクラスのprivate変数にアクセスできる。参照渡しでも値渡しでも、private変数にアクセスできているのは同じだ。違いは、呼び出し元に返るかだけでこの点はfriend関係ない。その本には、「参照渡しではなく値渡しでxの値を変更できる」とはっきり文章で書いてあるのか?はっきり書いてあるのなら、それは間違い。No.3に掲示されたソースのコメントにはそう書いてないよね。いう意味friendを外してコンパイルしてみるといい。コンパイルエラーになるはず。friendをつけるとコンパイルが通り、かつその関数内でよそのクラスのprivate変数にアクセスできる。参照渡しでも値渡しでも、private変数にアクセスできているのは同じだ。違いは、呼び出し元に返るかだけでこの点はfriend関係ない。その本には、「[b][color=#0000FF]参照渡しではなく値渡しで[/color][/b]xの値を変更できる」とはっきり文章で書いてあるのか?はっきり書いてあるのなら、それは間違い。No.3に掲示されたソースのコメントにはそう書いてないよね。2年前change_Axの引数を参照渡しにすることで値を変更することができました。ありがとうございます。}しかし「猫でもわかるC++プログラミング」という書籍のP299では、参照渡しではなく値渡しでxの値を変更できると書いてあります。}};change_Axの引数を参照渡しにすることで値を変更することができました。ありがとうございます。}[/code]しかし「猫でもわかるC++プログラミング」という書籍のP299では、参照渡しではなく値渡しでxの値を変更できると書いてあります。2年前xの値を変更することはできていますが、変更しているのはchange_Ax関数にローカルな引数なので、変更はchange_Ax関数から戻ると保存されません。呼び出し元のクラスAのインスタンスに手を加えたい場合は、change_Axの引数のAの代わりにA&を用い、参照にするといいでしょう。xの値を変更することはできていますが、変更しているのはchange_Ax関数にローカルな引数なので、変更はchange_Ax関数から戻ると保存されません。呼び出し元のクラスAのインスタンスに手を加えたい場合は、change_Axの引数のAの代わりにA&を用い、参照にするといいでしょう。以下のプログラムにて、classAのフレンドクラスであるclassBはclassAのxを参照することはできるのですが、xの値を変更することができません。0;}以下のプログラムにて、classAのフレンドクラスであるclassBはclassAのxを参照することはできるのですが、xの値を変更することができません。ミクプラは自由にリンクできます。