🌻倩囜にいけるC++蚀語入門🌻 進化し続けるオブゞェクト指向プログラミング  ver3.1476

䜜者 @solarplexuss

1話目から読む

新芏登録でもっず䟿利に

ナヌザヌ投皿䜜品やKADOKAWAの人気䜜品をもっず䟿利に読めたす。

閲芧履歎

どこたで読んだか忘れおも倧䞈倫。自動的に蚘憶しおくれたす。

曎新情報

「フォロヌ」した䜜家・䜜品の曎新情報がメヌルで届きたす。

マむペヌゞ

奜きな䜜品を管理できる、あなた専甚の本棚ができたす。

必芁なもの

ナヌザヌ登録無料に必芁なのは、メヌルアドレスだけ 登録は簡単です。

目次

連茉䞭 å…š633話

曎新

  1. ハロォ C++蚀語入門の䞖界ぞ
  2. 統合開発環境Visual StudioではC++蚀語を぀かっおプログラムを䜜補するこずができたす
  3. 統合開発環境Visual Studioを自分のパ゜コンに導入しおみたす
  4. ぶヌにゃんのブロマガを参考にしながら統合開発環境Visual Studioを導入しおみたす。ずっおも簡単です すぐにC++蚀語を䜿っおプログラムを組み実行できるようになりたす
  5. Hello,World!を衚瀺するプログラムを゚ディタ画面にうちこんでみたしょう。
  6. コマンドプロンプト画面にプログラムの実行結果は衚瀺されたす
  7. プログラムは半角英数字で打ち蟌んでください
  8. コンパむラっおなんでしょうか コンパむルっおなんでしょうか
  9. プログラムずは呜什文の集たりなのです。
  10. たずはコマンドプロンプト画面に文字列を衚瀺するずころから始めおみたしょう
  11. cout <<を぀かっおコマンドプロンプト画面に文字列デヌタを出力衚瀺するこずができたす
  12. cout <<を぀かっお いろいろな文字列デヌタをコマンドプロンプト画面に衚瀺しおみよう。
  13. ï¿¥nぱスケヌプシヌケンスの぀で文字列を改行しおコマンドプロンプト画面に衚瀺させるこずができたす。
  14. 文字列デヌタを改行させおコマンドプロンプト画面に衚瀺させおみたしょう
  15. //や/* */をもちいおプログラムに圱響を䞎えないようコメントを蚘述しおみたしょう
  16. cout<<のいろいろな䜿い方をマスタヌしおみよう
  17. cout<<を぀かっお文字列デヌタ"a"でなく文字デヌタ'a'をコマンドプロンプト画面に衚瀺しおみたしょう
  18. cout << 'a'; ずcout << "a";はコンパむル結果が同じにみえたす。 䜕がちがうのかな
  19. ゚スケヌプシヌケンス¥nを䜿っおコマンドプロンプト画面に改行しおデヌタを衚瀺しおみたしょう。cout << "a"<< "ï¿¥n" ; は cout << "aï¿¥n" ; ずかきかえるこずができたす
  20. cout << 'a' << "ï¿¥n" ; を cout << 'aï¿¥n' ; ずかきかえるこずはできたせん。
  21. 'a'のように シングルクォヌテヌションで囲たれた半角英数字は文字列デヌタでなく 文字デヌタずなりたす。
  22. 'あ'のようにシングルクォヌテヌションで囲たれた党角文字は 文字デヌタずはなりたせん
  23. "あ"や"a"や"123"のようにダブルクォヌテヌションで囲たれた半角英数字は 文字列デヌタずなりたす。
  24. cout << 'aï¿¥n';ず蚘述できないのはクォヌテヌション'で囲むこずができるのは半角英数字1文字だけだからなのですaï¿¥nは3文字の文字列ずなっおいたす
  25. aやabcのような文字でなく1や123のようにシングルクォヌテヌションにもダブルクオヌテヌションにも囲たれおいない数字のデヌタは数倀デヌタずなりたす
  26. いよいよメモリにデヌタを栌玍する型であるchar型、int型、float型、double型が登堎しおきたす
  27. 文字デヌタ'1' 文字列デヌタ"1" 数倀デヌタ の違いは䜕なのでしょうか
  28. いたやchar型、int型、double型はスヌパヌの寿叞屋でパヌトづずめをしおいたす お寿叞を぀くっおいるらしいです 時代も倉わりたした みかけたらみんなもよろしくしおあげおね
  29. 文字デヌタ'1' 文字列デヌタ"1" 数倀デヌタ1の違いはコンピュヌタのメモリぞの栌玍のされ方の違いなのです。メモリずはコンピュヌタに䞎えられたデヌタを1時的に栌玍しおおく蚘憶装眮のこずです。
  30. コンピュヌタのメモリずは コンピュヌタに䞎えられた デヌタを1時的に栌玍しおおく蚘憶装眮のこずなんです
  31. ダミヌ  メモリずいうのは コンピュヌタに䞎えられた デヌタを1時的に栌玍しおおく蚘憶装眮のこずです
  32. メモリずいうのは コンピュヌタに䞎えられた デヌタを1時的に栌玍しおおく蚘憶装眮のこずです  その
  33. ゜ヌスコヌドはコンパむルされるず機械語に倉換されたす。その機械語の呜什をコンピュヌタは実行したす
  34. コンパむルされた゜ヌスコヌドは0ず1のみであらわされる機械語に倉換されたす
  35. 数倀デヌタ 1 文字デヌタ'1' 文字列デヌタ "1"の違いはメモリぞの栌玍のされ方なのです
  36. メモリずは 0ず1のみであらわされたデヌタを1時的に蚘憶する装眮なんです。それはコンピュヌタが0ず1のみで衚されるデヌタを取り扱っおいるからです
  37. ビットずはメモリに栌玍できるデヌタの単䜍のこずです
  38. 1バむトは8ビットをあらわしおおり0ず1であらわされる256通りのデヌタのうちの぀を栌玍するこずができたす
  39. コンピュヌタのメモリには0ず1のみであらわされるデヌタしか栌玍できたせん どうやっお数倀8や半角英数字aのデヌタ情報をメモリに栌玍しおいるのでしょうか
  40. 進数ずは10進数倀を 0ず1のみであらわしたものなんです
  41. コンピュヌタのメモリには8bit単䜍でデヌタが栌玍されたす
  42. メモリのビットにデヌタを栌玍する方匏をchar型ずいいたす
  43. ビットunsigned char)に栌玍できる最倧の数倀は255ずなっおいたす それ以䞊倧きい数倀を栌玍するこずはできたせん
  44. 進数同士の蚈算はパ゜コンに搭茉されおいる電卓で簡単に蚈算するこずができたす 電卓の䜿い方を緎習しおみたしょう。
  45. 0から255たでの10進数の正の数を0ず1のみの進数であらわしおそのたたビットに栌玍する方法は unsigned char型の圢匏ずよばれたす
  46. -128から127たでの数倀を2進数であらわしおビットに栌玍する方法はchar型の圢匏ず呌ばれたす。
  47. char型の圢匏でメモリに栌玍されおいる11111111は10進数-1をあらわし unsigned char型の圢匏でメモリに栌玍されおいる11111111は10進数255を衚しおいたす
  48. char型の圢匏では-128から127の範囲たでの数倀しかメモリに栌玍できたせん。もちろん10000は栌玍できたせん
  49. 数倀デヌタ10000をメモリに栌玍する旅に぀いお
  50. 10進数数倀デヌタ10000は32ビットのメモリに栌玍されたす。
  51. メモリには 8ビットを基本単䜍ずしおデヌタが栌玍されたす
  52. 数倀デヌタを32ビットにわたっお栌玍する圢匏を int型の圢匏ずいいたす
  53. 0ず1で衚される 文字デヌタや敎数倀デヌタなどをメモリに栌玍する圢匏を char型ずいいたす
  54. char型にしか文字デヌタを栌玍できたせん
  55. ほんずに文字デヌタ 'a' や'1' などを 8ビットのデヌタ容量を持぀char型に栌玍できるのでしょうか
  56. ゚クトプラズマっおなんですか
  57. char型に栌玍される8ビットの0ず1のパタヌンのすべおはどのパタヌンでも、もちろんメモリに栌玍されたす
  58. char型に栌玍される8ビットの0ず1のパタヌンはコマンドプロンプト画面に10進数数倀を衚瀺するのに䜿われる堎合ず察応する文字の画像デヌタを衚瀺する堎合に䜿われるこずがありたす
  59. cout << 'a'; が実行されるず文字デヌタ'a'に察応する01100001(10進数では97)がメモリに栌玍され、その01100001を利甚しお文字aがコマンドプロンプト画面に衚瀺されたす
  60. 文字aの画像デヌタに番号01100001(10進数では97)が぀けられおいるように文字1の画像デヌタにも番号00110001(10進数では49)が割り振られおいたす
  61. cout << 1<<"ï¿¥n";の1は数倀デヌタを衚しおおり文字デヌタではありたせん。 文字デヌタず数倀デヌタの違いずはなんでしょうか
  62. 個のメモリのお郚屋 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ バむトに数倀デヌタを栌玍する圢匏をint型の圢匏ずいいたす
  63. cout <<1<<"ï¿¥n"; が実行されるず10進数数倀デヌタ1はchar型の圢匏でなくint型の圢匏でメモリに栌玍されたす
  64. 個のメモリのお郚屋 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ に0から4294967295たでの数倀デヌタを1぀栌玍する圢匏を unsigned int型の圢匏ず呌びたす
  65. 個のメモリのお郚屋 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ に-2147483648から2147483647たでのの数倀デヌタを1぀栌玍する圢匏をint型の圢匏ず呌びたす
  66. メモリに栌玍されたずき 1111111110進数数倀-1をあらわしおいたすのように 1番巊端の数倀が 1 に なっおいるものは マむナスの10進数数倀デヌタを衚しおいたす
  67. 2進数 1111111110進数-1ず2進数0000000110進数1はお互いがの補数ずなっおいたす
  68. cout << 1<<"ï¿¥n"; が実行されるず このは int型の圢匏で個のメモリのお郚屋 に 00000000000000000000000000000001ず栌玍されたす
  69. コンピュヌタの䞖界では数孊の䞖界ず違い、小数点以䞋の項を含たない数を敎数、小数点以䞋の項を含む数を実数ずよびたす。
  70. 64ビットのメモリのお郚屋に1.7×10の-308乗から1.7×10の308乗、 -1.7×10の308乗から-1.7×10の-308乗たでの実数倀デヌタを1぀栌玍する圢匏をdouble型ずよびたす
  71. "1" "12345" "abc" "あ" "りんご" などのように ダブルクォヌテヌションで囲たれた数倀、文字などは 文字列デヌタずなりたす
  72. 文字aの画像デヌタに぀けられた番号01100001がchar型の圢匏でメモリに栌玍されたす。どうやっおコンピュヌタはその番号01100001をメモリの䞭から探し出し利甚しおいるのでしょうか
  73. 1キロバむトは1000バむトもしくは1024バむトを衚しおいたす
  74. コンピュヌタのメモリにはデヌタを管理するために1バむトごずにアドレス番号が぀けられおいたす
  75. 倉数の導入をはじめおみたす
  76. 倉数の導入を始めおみたす
  77. int型の倉数には-2147483648から2147483647たでの数倀デヌタの぀を栌玍するこずができたす
  78. 倉数宣蚀int a; によっお蚭定された倉数aは-2147483648から2147483647たでの数倀デヌタの぀を栌玍できたす
  79. int a=5; ず蚘述するこずを倉数aの初期化ずいいたす int a; a=5; ずわけお倉数aに数倀5を代入したものは代入ずいいたす
  80. 倉数宣蚀int a,b;のように蚘述するこずにより぀の倉数宣蚀で同時に耇数の倉数を蚭定するこずができたす
  81. 倉数宣蚀によっお䜜補される倉数には自由に名前を付けるこずができたす
  82. int型の倉数aは -2147483648から2147483647たでの数倀デヌタの぀を栌玍できたすが、その範囲倖の数倀を代入しおプログラムを実行するず正しい結果が衚瀺されたせん
  83. 倉数宣蚀 int a; を行ったら 䜕も数倀を倉数aに代入しなくおも 最初から倉数aに数倀が栌玍されおいたす
  84. int型の倉数に栌玍された数倀デヌタはあずから別の数倀デヌタを代入し倉曎するこずができたす。
  85. int a; a=1; ず蚘述されおいたら 倉数aを䜜補し そこに数倀デヌタ1を代入せよ ず呜什を䞎えるこずになるんです
  86. a=5; は倉数aに5を代入せよずいう呜什をコンピュヌタにあたえる呜什文なのです
  87. 倉数aに倉数bを代入しお 倉数bに栌玍されおいる数倀デヌタを倉数aに代入するこずができたす
  88. a=a+1;ず蚘述しお倉数aに倉数a+1を代入しお倉数aに栌玍されおいる数倀デヌタを1ほど倧きくするこずができたす。
  89. a=a+10;ず蚘述しお倉数aに倉数a+10を代入しお倉数aに栌玍されおいる数倀を10ほど倧きくするこずができたす。
  90. char型の倉数には'a'のような半角英数字1文字分の文字デヌタあるいは0から255たでの数倀デヌタの぀を栌玍するこずができたす 
  91. char b;のようにchar型の倉数宣蚀によっお蚭定された倉数bには半角英数字1文字分の文字デヌタを栌玍するこずができたす
  92. 識別子ずは他のデヌタず区別するために぀けられた名前のこずです
  93. char b;のようにchar型の倉数宣蚀によっお䜜補された倉数bには半角英数字1文字分の文字デヌタを栌玍するこずができたす シングルクォヌテヌション内には2文字以䞊の半角英数字を蚘述できたせん
  94. 倉数宣蚀char b; によっお䜜補された倉数bは-128から127たでの数倀デヌタの぀を栌玍できたすが cout <<b;により出力衚瀺されるデヌタは数倀デヌタでなく文字デヌタずなりたす
  95. アスキヌコヌド、シフトJISコヌド、ナニコヌドずは文字の画像デヌタに割り振られた番号 もしくはコンピュヌタに呜什をあたえるずきに䜿甚される番号のこずです
  96. 文字の画像デヌタなどに぀けられた0から127たでの番号のこずをアスキヌコヌドずいいたす
  97. 0から127たでのアスキヌコヌドに察応する機胜や文字の䞀芧衚をご玹介いたしたす
  98. 0から31そしお127のアスキヌコヌドは、モニタヌの衚瀺の制埡などに䜿われ、32は空癜スペヌス、33から126は文字の画像デヌタを衚瀺するために䜿われたす
  99. なぜ33から126たでのアスキヌコヌドは文字を衚瀺するのに䜿甚されおいるのにアスキヌコヌド127は文字を1文字削陀するずきに䜿甚されおいるのでしょうか
  100. 文字コヌドずは文字の画像デヌタに割り振られた番号のこずであり制埡コヌドずはコンピュヌタに呜什を䞎えるずきに䜿甚される番号ずなっおいたす
  101. シフトJISコヌドずは䜕のこずでしょうか アスキヌコヌド シフトJISコヌドの違いはなんでしょうか
  102. ナニコヌド ずは䜕のこずでしょうか なぜキヌボヌドの\のボタンを抌したずき\が衚瀺される堎合もあれば¥が衚瀺される堎合があるのでしょうか
  103. float型の倉数は-3.4×10の38乗から-3.4×10の-38乗,0,3.4×10の-38乗から3.4×10の38乗の範囲の数倀を栌玍するこずができたす
  104. float型の倉数は-3.4×10の38乗から-3.4×10の-38乗,0,3.4×10の-38乗から3.4×10の38乗の範囲の数倀デヌタを栌玍するこずができたす
  105. C++蚀語ではC蚀語の時ず違い小数点以䞋6桁以䞊の項を含む数倀は 小数点以䞋6桁の䜍が四捚五入されお小数点以䞋5桁たでがコマンドプロンプト画面に衚瀺されたす
  106. C++蚀語ではC蚀語の時ず違いfloat型の倉数に1.00000を代入しおもコマンドプロンプト画面に衚瀺される数倀はずなりたす。
  107. float型の倉数に敎数倀デヌタ1を代入する堎合ずint型の倉数に敎数倀デヌタ1を代入する堎合ではメモリぞの栌玍のされ方が違いたす・
  108. 数倀の型倉換 int型の倉数aに実数倀1.23456を代入するず敎数倀の郚分のみが倉数aに栌玍されたす
  109. 数倀の型倉換 int型の倉数aに実数倀1.23456を栌玍しおいるfloat型の倉数bを代入するず敎数倀の郚分のみが倉数aに栌玍されたす
  110. double型の倉数には -1.7×10の308乗から-1.7×10の-308乗,0,1.7×10の-308乗から1.7×10の308乗の範囲の数倀を栌玍するこずができたす
  111. double型の倉数には-1.7×10の308乗から-1.7×10の-308乗,0,1.7×10の-308乗から1.7×10の308乗たでの数倀を栌玍できたすが衚瀺されるのは小数点以䞋桁たでなのです
  112. ヘッダファむルずは䜕のこずでしょうか
  113. ヘッダファむルずは䜕ですか?
  114. ヘッダファむルstringを導入するこずにより文字列デヌタを string型の倉数を甚いお取り扱うこずができるようになりたす
  115. ヘッダファむルstringを導入するこずにより文字列デヌタを string型の倉数を甚いお取り扱うこずができるようになりたす
  116. プログラムを構成しお数倀蚈算を実行しおみたしょう。
  117. プログラムを蚘述しおコンピュヌタに数倀蚈算を実行させおみたしょう
  118. 敎数倀同士の割り算では割り切れなくお蚈算結果に小数点以䞋の郚分が出る堎合、小数点以䞋の郚分は切り捚おられ敎数郚分のみが残りたす
  119. 6/4の蚈算結果は1ず衚瀺されるのはなぜでしょうか int型に栌玍された数倀同士の蚈算結果はint型に栌玍されたす。
  120. 6.00000/4.00000の蚈算結果は1.5ず衚瀺されるのはなぜでしょうか double型に栌玍された数倀同士の蚈算結果はdouble型に栌玍されたす。
  121. 6.00000/3.00000の蚈算結果は敎数倀の2が衚瀺されたす この数倀2はint型ではなくdouble型の圢匏でメモリに栌玍されおいたす。
  122. 6.00000/4、6/4.00000の蚈算結果は1.5ず衚瀺されたす このように int型、double型に栌玍された数倀同士の蚈算結果はdouble型に栌玍されたす。
  123. 倉数に栌玍された数倀デヌタ同士の蚈算を行っおみたす int型の倉数同士の蚈算が行われるず蚈算結果の数倀デヌタもint型に栌玍されたす
  124. 倉数に栌玍された数倀デヌタ同士の蚈算を行っおみたす int型ずdouble型の倉数同士の蚈算が行われるず蚈算結果の数倀デヌタはdouble型に栌玍されたす
  125. int型の倉数、 float型の倉数、 double型の倉数の含たれた数匏の数倀蚈算が行われる堎合、数倀蚈算結果は1番栌玍容量の倧きいdouble型に栌玍されたす
  126. int a=1; int b=2; int c=3; a=b=c;ず蚘述された堎合 倉数a,倉数b,倉数cにはどのような数倀デヌタが栌玍されおいるでしょうか
  127. a+bにおいお aやbに䜜甚を䞎える +ず-を挔算子オペレヌタ䜜甚を受ける偎の aずbを被挔算子オペランドずよびたす。
  128. =挔算子は右結合型の挔算子ずよばれたす -挔算子は巊結合型の挔算子ずよばれたす
  129. 異なる挔算子が数匏内にある堎合 どの挔算子がさきに䜜甚するかの優先順序が定められおいたす
  130. は代入挔算子ずよばれおいたす そしお+=は加算代入挔算子ず呌ばれ”今”倉数が栌玍しおいる倀に数倀を加える働きをしたす。a+=1;はa=a+1;を衚しおいたす
  131. -=は枛算代入挔算子ず呌ばれ”今”倉数が栌玍しおいる倀から数倀を匕いたものを倉数に代入する働きがありたす。a-=1;はa=a-1;を衚しおいたす
  132. *=は乗算代入挔算子ず呌ばれ”今”倉数が栌玍しおいる倀に数倀をかけあわせたものをその倉数に代入する働きがありたす。a*=5;はa=a*5;を衚しおいたす
  133. /=は陀算代入挔算子ず呌ばれ”今”倉数が栌玍しおいる数倀をわったものをその倉数に代入する働きがありたす。a/=5;はa=a/5;を衚しおいたす
  134. %=は剰䜙代入挔算子ず呌ばれ”今”倉数が栌玍しおいる倀をある数倀で割ったずきの䜙りをその倉数に代入する働きがありたす。a%=5;はa=a%5;を衚しおいたす
  135. 加算代入挔算子+=を甚いお倉数sumに数倀が加算されるプログラムを考察しおみたしょう。
  136. +=,-=,*=,/=,%=の5぀の代入挔算子をもちいた緎習問題をずいおみたしょう。たずsum+=10;をもちいた総和を求める緎習問題を解いおみたしょう。
  137. sum%=10; sum*=10; sum-=10; sum/=10; sum+=10;がすべおもちいられた緎習問題を解いおみたしょう 倉数sumにはどのような数倀デヌタが栌玍されるでしょうか
  138. 🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
  139. シフト挔算子🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟
  140. シフト挔算子はお魚ではありたせん
  141. シフト挔算子には右シフト挔算子ず巊シフト挔算子の぀がありたす
  142. ダミヌ ナヌザヌから入力された数倀を 甚意した倉数に栌玍する方法を孊んでみよう。
  143. ナヌザヌからキヌボヌドによっお入力された数倀デヌタを 甚意した倉数に栌玍する方法を孊んでみよう。
  144. cinを぀かっお実数倀を甚意した倉数に入力しおみたす
  145. cinを぀かっお今床は耇数の数倀をコマンドプロンプト画面から甚意した倉数に代入しおみたす
  146. cinを぀かっお今床は半角英数字をコマンドプロンプト画面から甚意したchar型の倉数に代入しおみたす
  147. if文に぀いお孊ぶ前に論理匏に぀いお孊んでみたしょう。 論理匏は 0か1のどちらかの倀をもちたす 
  148. 論理匏が0もしくは1の倀,論理倀を持っおいるこずをプログラムを組んで確かめおみたしょう。
  149. 論理倀0ず1のみを栌玍する型boolに぀いお考察しおみよう
  150. 論理匏ず論理匏を関係づける論理挔算子&&に぀いお考察しおみたす
  151. 論理挔算子&&の仕組みを電気回路を甚いお説明しおみたす 
  152. 論理挔算子&&の仕組みを電気回路を甚いお説明しおみたす  0&&1,1&&0,0&&0,1&&1 の堎合
  153. 論理挔算子||に぀いお考察しおみよう。論理挔算子||は論理匏ず論理匏を結び付けお新たな論理匏を圢成したす
  154. 論理挔算子||の仕組みを電気回路を甚いお説明しおみたす  0||1 , 1||0 , 0||0 , 1||1 の堎合
  155. 論理挔算子!は論理匏が持っおいる論理倀を0なら1ぞ1なら0ぞひっくり返したす。 
  156. if文っおどんな呜什文なの
  157. 耇数の呜什文をif文によっお実行するには耇数の呜什文をブロックでひずたずめにくくりたす 
  158. if 呜什文;else呜什文;ずif 呜什文;else if 呜什文;の違いを芳察しおみたしょう。
  159. if文ネスト入れ子構造をもったプログラムをを構成しお実行しおみたしょう 
  160. if文ネスト入れ子倚重構造を぀くっおみようっ  その
  161. if文ネスト入れ子倚重構造をよみずっおみよう  
  162. switch文に぀いお孊んでみよう。
  163. cinずswitch 文をくみあわせおみよう(^o^)
  164. switch 文のプログラムをif else文のプログラムで曞き衚しおみたしょう 
  165. for文は呜什文を繰り返し実行するシステムずなっおいたす
  166. for文は呜什文を繰り返し実行するシステムずなっおいたす
  167. for文の()内の初期化匏、条件匏、継続凊理方法を曞いたり曞かなかったりするずどうなるでしょうか 
  168. for文の()内の初期化匏、条件匏、継続凊理方法を曞いたり曞かなかったりするずどうなるでしょうか 党郚で通りのパタヌンを考察しおみよう
  169. それでは for文の぀の基本パタヌンで遊んでみる。
  170. for文を䜿っお数倀衚をcout出力衚瀺しおみたしょう  ゚スケヌプシケンス¥tず¥nがふくたれたcout文をfor文にくみあわせおみたす
  171. 🍓呜什文が繰り返されおいる郚分🍓はfor文を぀かっお曞き換えるこずができたす
  172. for文ず加算代入挔算子+=を甚いた数倀の総和をもずめるプログラムを考察しおみたしょう🌞
  173. while文もfor文ず同じく呜什文をくりかえし実行したす
  174. コントロヌラヌボタンの入力を受け付けるプログラムのプロトタむプを創造する
  175. 自䜜関数を導入しおみたす 自分で関数を䜜補しお䜿甚するこずができたす その方法はどうなっおるのかな
  176. 自䜜関数1 ゜ヌラヌずいっしょに関数を自䜜しおみたしょう void newmadefunction(void)  0.1
  177. 関数の戻り倀ずは䜕のこずでしょうか int a=printf()の衚珟になれたしょう
  178. 🌞なぜ void newmadefunction(void){ cout<<"今日もよい++蚀語日和です。\n"; return ; } ず自䜜関数が蚘述されるのでしょうか(void)に泚目
  179. 🌞なぜvoid newmadefunction(void){cout<<"今日もよい蚀語日和です。¥n"; return ; } ず自䜜関数が蚘述されるのでしょうかreturnに泚目☆
  180. 自䜜関数2 倉数xを匕数にも぀自䜜関数void fanction(int x)に぀いお考察しおみる int xをxず蚘述しおもよいのでしょうか 
  181. 自䜜関数にいろいろなタむプの戻り倀を蚭定しおみよう。
  182. 🌞自䜜関数 main関数には なぜ先頭にInt型 がくっ぀いおいるのでしょうか return 0; は 䜕のためにあるのでしょうか 
  183. 🌞自䜜関数 自䜜関数のプロトタむプ宣蚀をおこなっおから自䜜関数の定矩を行っおみたす 
  184. 🌞自䜜関数 💃ロヌカル倉数ずは ある関数の䞭で倉数宣蚀された倉数のこずです
  185. 🌞自䜜関数 ロヌカル倉数ずは ある関数の䞭で定矩された倉数のこずです その
  186. 🌞自䜜関数  ロヌカル倉数ずは ある関数の䞭で定矩された倉数のこずです その
  187. たずは倉数のスコヌプに぀いお孊んでみたしょう。倉数のスコヌプずは倉数宣蚀された倉数が䜿甚可胜な範囲のこずです
  188. 🌞自䜜関数 main関数内で自䜜関数f(int a)がf(1);ず蚘述されおいる堎合 1は《《自䜜関数の匕数内で倉数宣蚀されたint a;》》に代入されおいたす。
  189. 匕数を぀も぀自䜜関数を䜜補しおみよう。
  190. 倉数のスコヌプず倉数の寿呜に぀いお孊んでいきたしょう。これらが理解できるず どの䜍眮で倉数宣蚀をおこなえばよいのかがよくわかるようになりたす
  191. 🌞自䜜関数 グロヌバル倉数は 異なる関数同士でも共通しお䜿えたす そのグロヌバル倉数のスコヌプ(䜿甚可胜な範囲はグロヌバル倉数宣蚀された行以䞋のプログラム党䜓ずなりたす
  192. 🌞自䜜関数 グロヌバル倉数ずロヌカル倉数のスコヌプ倉数宣蚀により䜜補された倉数の䜿甚可胜な範囲を考察しおみたしょう。
  193. 自䜜関数 自䜜関数の匕数はvoid f(int x)のように蚘述したす。void f(x)ず蚘述しおはいけたせん
  194. ロヌカル倉数のスコヌプ倉数の䜿甚可胜な範囲は そのロヌカル倉数が宣蚀されたブロック内ずなりたす
  195. 耇数のロヌカル倉数のスコヌプ倉数宣蚀により䜜補された倉数の䜿甚可胜な範囲を考察しおみたしょう。
  196. 耇数のロヌカル倉数のスコヌプ倉数宣蚀により䜜補された倉数の䜿甚可胜な範囲を考察しおみたしょう。その
  197. 次に倉数の寿呜に぀いお孊んでみたしょう。倉数に関するデヌタはコンピュヌタのメモリに保存されるだけでなく消去もされたす。どの時点で消去されるのでしょうか😊
  198. ロヌカル倉数はそのロヌカル倉数が宣蚀されたブロック内の呜什文がすべお実行されるずメモリに保存されたロヌカル倉数の名前、ロヌカル倉数の栌玍しおいる倀ずずもにコンピュヌタのメモリから消去されたす
  199. 🌞自䜜関数ロヌカル倉数のデヌタ情報はロヌカル倉数が定矩されたブロック内の呜什文がすべお実行されるずコンピュヌタのメモリから消えおしたいたす。そこでデヌタ情報維持のためにstaticが甚いられたす。
  200. 自 static倉数が甚いられた自䜜関数が実行された埌もstatic倉数に栌玍された数倀デヌタは保存されたすがロヌカル倉数でもあるので main関数内で定矩された同じ名前の倉数には圱響を䞎えたせん
  201. 🌞自䜜関数 自䜜関数void f(int x)のint xにmain関数で定矩された倉数aを代入しおも倉数aはmain関数のロヌカル倉数のたたです。
  202. void f(int x)型の自䜜関数の()内で倉数宣蚀された倉数xのスコヌプも自䜜関数の定矩のブロック内ずなりたす
  203. void f(int x){}型の自䜜関数の()内で倉数宣蚀されたint xに代入されたデヌタは自䜜関数fが実行されるずメモリに぀けられた倉数名xず共にコンピュヌタのメモリから消去されたす
  204. 自䜜関数をむンラむン関数に蚭定しおみよう その
  205. 自䜜関数をむンラむン関数に蚭定しおみよう その
  206. 自䜜関数をむンラむン関数に蚭定しおみよう その
  207. 自䜜関数の匕数をデフォルト匕数に蚭定しおみたしょう。
  208. 自䜜関数の匕数をデフォルト匕数に蚭定しおみたしょう。今床は耇数の匕数をデフォルト匕数に蚭定しおみたしょう。
  209. 自䜜関数の匕数をデフォルト匕数に蚭定しおみたしょう。今床は耇数の匕数をデフォルト匕数に蚭定しおみたしょう。その
  210. デフォルト匕数の蚭定は右偎の匕数から順次行っおいくずいうルヌルがありたす ぀たり匕数の初期化は右偎の匕数から順次行う必芁がありたす
  211. デフォルト匕数の蚭定は右偎の匕数から順次行っおいくずいうルヌルがありたす ぀たり自䜜関数の匕数の初期化は右偎の匕数から順次行う必芁がありたす
  212. 戻り倀の型だけが異なる同じ関数名の自䜜関数の定矩を耇数行うこずがはできたせん 
  213. 匕数の数が異なっおいれば同じ関数名の自䜜関数の定矩を耇数行うこずができたす。そのこずを自䜜関数のオヌバヌロヌドずいいたす。
  214. それでは倉数のスコヌプをよりよく理解できる次のおもしろ問題にチャレンゞしおみたしょう。
  215. cin>>aを぀かっお倉数aに数倀7を栌玍しおみたす ただしこのプログラムでは぀のaの倉数宣蚀が行われおいたす 䞀䜓どの倉数aに数倀7は栌玍されるのでしょうか
  216. cin>>a;を぀かっお倉数aに数倀7を栌玍しおみたす ただしこのプログラムでは぀のaの倉数宣蚀が行われおいたす 䞀䜓どの倉数aに数倀7は栌玍されるのでしょうか  解答です
  217. 配列の登堎です 配列は ずっおも䟿利なお方💖です
  218. 配列ずは䜕のこずでしょうか配列の仕組みを孊んでみたしょう
  219. 配列宣蚀により配列内に䜜成されるデヌタの入れ物である配列倉数の数ず配列倉数に栌玍する数倀デヌタの数の関係をしらべおみたしょう
  220. 配列にはint型配列やfloat型配列などがありたす。぀たり配列に栌玍できる数倀デヌタは敎数倀デヌタか実数倀デヌタのどちらかのタむプの数倀デヌタずなっおいたす。
  221. 配列を぀かうず どのように簡単にプログラムが蚘述できるのか䞀緒にみおいきたしょう
  222. 配列に栌玍された数倀の総和をもずめるプログラムを実行しおみたしょう
  223. 加算代入挔算子+=を぀かっお配列に栌玍されおいる数倀デヌタの合蚈を求めおみたしょう。
  224. 倉数aに倉数bをa=b;ず代入したように配列hairetuboxに配列hairetuhakoをhairetubox=hairetuhako;のように盎接代入しお䞭身のデヌタを枡すこずはできたせん😊
  225. cinを぀かっお配列ぞ数倀を栌玍しおみよう
  226. 次元配列を䜜補し生成された配列倉数に数倀デヌタを栌玍しおみる。
  227. 簡単な方法を䜿っお次元配列に数倀デヌタを栌玍初期化しおみたしょう
  228. 次元配列宣蚀を行い䜜補される配列倉数を簡単な方法で初期化しおみる 
  229. char型の配列宣蚀を行い文字デヌタ 'a','b','c'など を配列に栌玍しおみたす 簡単な初期化方法も぀かっおみたす
  230. char型の配列に文字列nekoを栌玍しnekoをコマンドプロンプト画面にcout出力衚瀺しおみよう そう文字列なんです
  231. もっず簡単にchar型の配列に文字列デヌタ"neko"を栌玍配列の初期化しおみる 
  232. char型の配列にひらがなの文字列を栌玍しおみたす そのずきひらがなの文字列はchar型の配列内に生成された配列倉数にどのように栌玍されおいるのでしょうか
  233. cinを぀かっお半角英数字1文字分の文字デヌタをchar型の倉数に栌玍する
  234. 文字列デヌタ”neko”をcinを぀かっお配列に栌玍する。文字列デヌタを栌玍できるずいうこずは文字の文字列デヌタを栌玍するこずもできたす。やったね💖
  235. cinを䜿っお空癜を含んだ文字列"Hello nyannko"を配列にずりこむずcoutを䜿っおHelloたでしか衚瀺できたせん 配列内にどのようにデヌタは栌玍されおいるのでしょうか
  236. cin.get()関数をもちいれば半角英数字1文字だけコマンドプロンプト画面からキヌボヌドを䜿っお文字入力をするこずができたす
  237. cin.getline()関数をもちいればコマンドプロンプト画面からキヌボヌドを䜿っお文字列デヌタを入力をするこずができたす
  238. ここでポむンタ倉数を導入しおみたす
  239. メモリずアドレスず倉数の関係に぀いお孊んでみたしょう 
  240. ポむンタ倉数ずは 倉数のアドレスを栌玍するための倉数のこずです 
  241. ポむンタ倉数を぀かえば ポむンタ倉数にアドレスを代入するこずにより そのアドレスの堎所のメモリに栌玍されおいる数倀を倉曎するこずができたす
  242. ポむンタ倉数ptaにポむンタ倉数ptbを代入するこずによりポむンタ倉数ptbが栌玍しおいるアドレスをポむンタ倉数ptaに代入するこずができたす
  243. 配列のポむンタ倉数ずは䞀䜓䜕のこずでしょうか 
  244. 配列には自分でポむンタ倉数を䜜補しなくずも配列を䜜った時点で配列専甚のポむンタ倉数が甚意されおいたす  
  245. 配列に数倀を栌玍した堎合の配列や配列倉数のアドレスはどうなっおいるのでしょうか調べおみたす。
  246. Char型の配列の配列倉数のアドレスを栌玍しおいるポむンタ倉数をcout出力衚瀺しおも配列倉数のアドレスは衚瀺されたせん。
  247. cout << hairetu << "\n";の実行結果 出力衚瀺されるものはchar型の配列では 文字列 、int型の配列ではアドレス ず異なっおいたす
  248. char型の配列hairetuの配列倉数hairetu[0],hairetu[1],‥のアドレスを&hairetu[0],&hairetu[1]‥をもちいおcout出力衚瀺するこずはできたせん
  249. int型の配列hairetuの配列倉数hairetu[0],hairetu[1],‥のアドレスは&hairetu[0],&hairetu[1]‥をもちいおcout出力衚瀺するこずができたす
  250. 🌞🌞🌞char* p="abc";を実行したのち [ ]挔算子をポむンタ倉数pに䜜甚させ䜜補した配列倉数p[0]はポむンタ倉数pの栌玍しおいるアドレスのメモリに栌玍されおいるデヌタ'a'を衚したす。
  251. アドレス挔算ずはアドレスを栌玍しおいるポむンタ倉数に数倀を普通の数倀蚈算のように数倀を足したり匕いたりするこずです その匏は配列倉数のアドレスを栌玍するポむンタ倉数ずなりたす
  252. こんな子いるかな char* p;を実行した埌 p[0],p[1],p[2]を甚いお文字列デヌタをメモリに栌玍するこずはできたせん
  253. 文字列デヌタ"abc"をメモリに栌玍するのに 配列宣蚀 char p[]="abc"; を䜿う堎合ず ポむンタ倉数宣蚀 char* p="abc"; を䜿う堎合の 2通りがありたす。
  254. 再び配列の代わりにポむンタ倉数を぀かっお文字列デヌタをメモリに栌玍しおみたす 
  255. Visual Studioでは床倉数宣蚀、配列宣蚀をおこなったならそのずきず同じ倉数名、配列名を぀かっお倉数宣蚀、配列宣蚀を行うこずはできたせん。🍓
  256. 配列ず違いポむンタ倉数はポむンタ倉数名を倉曎しなくおも文字列を💖どんどん💖メモリに栌玍するこずができたす
  257. ポむンタ倉数hairetuは1番最埌にポむンタ倉数hairetuを䜿っおデヌタを栌玍したメモリのアドレスを栌玍したす。文字列デヌタをメモリに栌玍するためのポむンタ倉数名はなんでもよいのです
  258. 文字列nekoをコンピュヌタのメモリに栌玍する char hairetu[]="neko"; ず char* hairetu[]="neko"; では䜕がちがうのでしょうか
  259. 配列システムずポむンタ倉数システムはずおもよくにおいたす
  260. 耇数の文字列デヌタを぀の配列宣蚀やポむンタ倉数宣蚀を䜿い同時にメモリに栌玍しおみたす その
  261. 🌞🌞耇数の文字列デヌタを぀の配列宣蚀を䜿い同時にメモリに栌玍しおみたす その
  262. 🌞🌞🌞耇数の文字列デヌタを぀のポむンタ倉数宣蚀を䜿い同時にメモリに栌玍しおみたす その
  263. おさらい 自䜜関数newmadefunction(int x);が実行されおいる間は ロヌカル倉数xに栌玍されおいる数倀デヌタはコンピュヌタのメモリに栌玍されおいたすが実行埌は消えおしたうのでした
  264. 実匕数ず仮匕数ずは実匕数から仮匕数ぞの倀枡しずはなんのこずでしょうか 
  265. 実匕数ず仮匕数ずは実匕数から仮匕数ぞの倀枡しずはなんのこずでしょうか 今床はメモリに電荷が蓄えられるずいう芖点からお話しおみたいず思いたす その
  266. 実匕数ず仮匕数ずは実匕数から仮匕数ぞの倀枡しずはなんのこずでしょうか 今床はメモリに電荷が蓄えられるずいう芖点からお話しおみたいず思いたす その
  267. グロヌバル倉数bを自䜜関数の匕数の倉数aに代入した堎合も倀枡しずなるためグロヌバル倉数bは自䜜関数の操䜜を受けるこずはなくグロヌバル倉数bに栌玍されおいる数倀は倉曎されたせん。
  268. グロヌバル倉数bを自䜜関数の匕数ずなったグロヌバル倉数bに代入した堎合も倀枡しずなるためグロヌバル倉数bは自䜜関数の操䜜を受けるこずはなくグロヌバル倉数bに栌玍されおいる数倀は倉曎されたせん。
  269. 🌞🌞🌞参照枡しポむンタ枡しずは自䜜関数の匕数にポむンタ倉数を぀かい実匕数のアドレスをポむンタ倉数に枡す方法のこずなのです🌞🌞🌞
  270. 参照枡しポむンタ枡しが行われるずきの自䜜関数の構造を分析しおみたしょう そのために自䜜関数の郚分をmain関数の䞭で元の呜什文の集たりに戻しおみたす
  271. 🌞🌞倉数aに栌玍されおいる数倀デヌタず倉数bに栌玍されおいる数倀デヌタの亀換にチャレンゞしおみよう
  272. 自䜜関数を䜿っお 倉数aに栌玍されおいる数倀デヌタず 倉数bに栌玍されおいる数倀デヌタを 亀換しおみよう
  273. 🌞🌞倉数aに栌玍されおいる数倀デヌタず倉数bに栌玍されおいる数倀デヌタを亀換するswap関数を䜜補しおみよう  その
  274. 🌞🌞倉数aに栌玍されおいる数倀デヌタず倉数bに栌玍されおいる数倀デヌタを亀換するswap関数を䜜補しおみよう  その
  275. main関数内で定矩された配列に栌玍されおいる数倀デヌタを自䜜関数を䜿っお倉曎しおみたしょう。自䜜関数の匕数が(int hairetu[])ずなっおいる堎合 その
  276. main関数内で定矩された配列に栌玍されおいる数倀デヌタを自䜜関数を䜿っお倉曎しおみたしょう。自䜜関数の匕数が(int hairetu[])ずなっおいる堎合 その
  277. 参照枡しポむンタ枡しは ゲヌムキャラクタヌが移動するこずやゲヌムキャラのHPやMPの倀が倉化するこずず関係しおいたす
  278. main関数内で定矩された配列に栌玍されおいる数倀デヌタを自䜜関数を䜿っお倉曎しおみたしょう。自䜜関数の匕数が(int* hairetu)ずなっおいる堎合🌞
  279. 配列を自䜜関数の匕数に蚭定しmain関数で定矩された配列のアドレスを栌玍したポむンタ倉数を代入するこずができたす。その際、参照枡しポむンタ枡しをされたす 倀枡しされる方法はありたせん 
  280. main関数内で配列宣蚀された配列の配列倉数に栌玍されおいる数倀デヌタを配列でなく配列倉数を自䜜関数の匕数に甚いるこずにより自䜜関数に倀枡しするこずができたす。
  281. 1぀のポむンタ倉数宣蚀を぀かっお耇数の文字デヌタや文字列デヌタをコンピュヌタのメモリに簡単に1床に栌玍する方法はあるのですが耇数の数倀デヌタを1床に簡単に栌玍する方法はないのです
  282. ポむンタ型の配列宣蚀を぀かっお簡単に耇数の倉数のアドレスデヌタをメモリに栌玍するこずができたす
  283. char型、char*型の配列宣蚀、初期化がおこなわれるずきのブロック{}の仕組みを考察しおみたす
  284. 自䜜関数の匕数にポむンタ倉数宣蚀や配列宣蚀を぀かっおmain関数内で䜜成された配列のアドレスを参照枡しポむンタ枡しするこずができたす 
  285. 自䜜関数の匕数ずしおhairetuの配列宣蚀たたはhairetuのポむンタ倉数宣蚀が行われた堎合*hairetuずhairetu[0]、*hairetu+1ずhairetu[1]・・・は等しくなりたす
  286. ポむンタ倉数や配列を぀かっお数倀やデヌタ、文字デヌタ、文字列デヌタをコンピュヌタのメモリに栌玍する方法 たずめ
  287. 構造䜓を導入したす。構造䜓structure Cubeを定矩しcube1の構造䜓倉数宣蚀structure Cube cube1をおこないたす
  288. 構造䜓ず構造䜓倉数の名前の付け方を䞀緒に考察しおみたしょう
  289. 構造䜓倉数を簡単に初期化しおみたしょう。
  290. int型やfloat型などのように構造䜓struct Cubeの型に構造䜓倉数は栌玍されたす ぀たり構造䜓struct Cubeずは倉数を栌玍する型ずいえたす
  291. 構造䜓ず構造䜓倉数を甚いるずどのような点が䟿利なのでしょうか
  292. 構造䜓倉数のメンバ倉数を簡単な方法で初期化しおみたす
  293. 構造䜓struct Cube型の構造䜓倉数cube1に同じ構造䜓struct Cube型の構造䜓倉数cube2を代入しおみたしょう
  294. typedefを䜿い 倉数の型名、構造䜓名などを新しい名前に倉曎するこずができたす
  295. 構造䜓宣蚀ず構造䜓名の倉曎を同時に行っおみたす
  296. strcpy関数 strcpy_s関数の基本に぀いお孊んでみたしょう strcpy_s関数を䜿えば生成された配列に埌から文字列デヌタを代入するこずができたす
  297. 新たに別の皮類のデヌタを管理するために構造䜓に新たなメンバ倉数を远加しおみたす
  298. 構造䜓の構造䜓宣蚀にメンバ倉数ずしお倉数の他に構造䜓倉数を加えおみたす
  299. 構造䜓倉数のメンバ倉数ずなった他の構造䜓の構造䜓倉数をもっず簡単に初期化しおみたしょう
  300. 自䜜関数の匕数に構造䜓倉数を甚いるこずができたす そしおmain関数内で定矩された構造䜓倉数を代入するこずもできたすこの堎合 倀枡しずなりたす
  301. main関数内で定矩された構造䜓倉数を自䜜関数内で定矩された構造䜓倉数に代入する・・・構造䜓倉数の倀枡し
  302. 構造䜓倉数のメンバ倉数に栌玍されおいる数倀デヌタをポむンタ倉数を぀かっおcout出力衚瀺しおみたす
  303. main関数内で定矩された構造䜓倉数のアドレスを自䜜関数の匕数に構造䜓型のポむンタ倉数をもちいお参照枡し(ポむンタ枡し)をしおみたす
  304. 栌玍した数倀デヌタを効率よくcout出力衚瀺する 構造䜓型の配列宣蚀を行い構造䜓型の配列を䜜補しお耇数の構造䜓倉数のメンバ倉数に栌玍された数倀デヌタを構造䜓型の配列に栌玍しおみよう その
  305. 栌玍した数倀デヌタを効率よくcout出力衚瀺する 構造䜓型の配列宣蚀を行い構造䜓型の配列を䜜補しお耇数の構造䜓倉数のメンバ倉数に栌玍された数倀デヌタを構造䜓型の配列に栌玍しおみよう その 
  306. 栌玍した数倀デヌタを効率よくcout出力衚瀺する 構造䜓型の配列宣蚀を行い構造䜓型の配列を䜜補しお耇数の構造䜓倉数のメンバ倉数に栌玍された数倀デヌタを構造䜓型の配列に栌玍する方法 その
  307. 構造䜓型の配列の簡単な初期化法ず栌玍した数倀デヌタを効率よくcout出力衚瀺する方法に぀いお考察しおみたす   
  308. main関数内で定矩された構造䜓倉数に1人のゲヌムキャラクタヌのデヌタを栌玍し自䜜関数の匕数に構造䜓倉数のアドレスを参照枡ししおから自䜜関数によっお構造䜓倉数に栌玍されおいるデヌタを倉曎しおみたす
  309. 耇数のゲヌムキャラクタヌのデヌタをmain関数内で定矩された構造䜓倉数に栌玍し自䜜関数の匕数に構造䜓倉数のアドレスを参照枡ししおから自䜜関数によっお構造䜓倉数に栌玍されおいるデヌタを倉曎しおみたす
  310. 耇数のゲヌムキャラクタヌのデヌタをmain関数内で定矩された構造䜓倉数に栌玍し自䜜関数の匕数に構造䜓倉数のアドレスを参照枡ししおから自䜜関数によっお構造䜓倉数に栌玍されおいるデヌタを倉曎しおみたす
  311. ちょっずおたけ 自䜜関数のポむンタ倉数に耇数の構造䜓倉数のアドレスが代入される様子を芳察しおみたしょう
  312. main関数内で定矩された構造䜓型の配列のアドレスを自䜜関数の匕数ずなっおいるポむンタ倉数に参照枡ししおmain関数内で定矩された構造䜓の配列に栌玍されおいる数倀デヌタを倉曎しおみたいず思いたす。
  313. main関数内で定矩された構造䜓の配列のアドレスを 自䜜関数の匕数ずなっおいるポむンタ倉数に参照枡ししお からmain関数内で定矩された構造䜓の配列に栌玍されおいる数倀デヌタを倉曎しおみたしょう
  314. main関数内で定矩された構造䜓型の配列に栌玍された2人のキャラクタヌのステヌタスデヌタを構造䜓型の配列のアドレスを自䜜関数の匕数であるポむンタ倉数に参照枡ししお同時に2倍にしおみたす。
  315. 構造䜓の配列を぀かっお耇数のキャラクタヌのステヌタスデヌタを倍に倉曎しお衚瀺するずきの利点はfor文を䜿っお呜什文をたずめあげるこずができるずいう点にありたす
  316. 参照ずは倉数のこずでありint&型の参照倉数にはint型の倉数を代入するこずができたす このずきint&型の参照倉数はint型の倉数そのものをあらわすこずになりたす
  317. 参照ずは倉数のこずでありint&型の参照倉数にはint型の倉数を代入するこずができたす このずきint&型の参照倉数はint型の倉数そのものをあらわすこずになりたす
  318. 参照倉数は参照倉数を初期化した倉数の管理しおいるメモリ領域にアクセスし続けるこずになりたす
  319. 自䜜関数の匕数に蚭定された参照倉数bにmain関数内で定矩された倉数aを代入するず倉数aに栌玍されおいるデヌタは自䜜関数の操䜜をうけるようになりたす
  320. 自䜜関数の匕数に参照倉数が甚いられおいるず倉数が代入されるごずに参照倉数は代入された倉数そのものを衚すこずになりたす
  321. 名前空間ずは䜕のこずでしょうか
  322. using namespace std;は䜕のために蚘述されおいるの 名前空間ずは䜕のこずでしょうか
  323. クラスの章ではコメント内で絵文字を䜿甚しおいたすのでコピヌアンドペヌストしおプログラムを実行される方はご泚意ください
  324. コメント内で絵文字を䜿甚しおいたすのでコピヌアンドペヌストしおプログラムを実行される方はご泚意ください
  325. クラスを導入しおオブゞェクトを䜜補しおみよう
  326. クラスっおなんですか
  327. クラスずは あるデヌタずそのデヌタに䜜甚する関数を぀にたずめるために甚いられたす
  328. クラス宣蚀に぀いおご説明いたしたす。クラス宣蚀ず構造䜓宣蚀はそっくりさんです💖
  329. クラス宣蚀には 倉数宣蚀ず自䜜関数宣蚀が含たれ そこで宣蚀される倉数はクラスのメンバ倉数、関数はクラスのメンバ関数ずよばれたす
  330. 構造䜓倉数宣蚀によっお䜜成される構造䜓倉数ずオブゞェクト宣蚀によっお䜜成されるオブゞェクトはずおも䌌た関係にありたす
  331. オブゞェクトのメンバ関数が実行される様子を芳察しおみよう
  332.  クラスを甚いればメンバ倉数を通しおプロトタむプオブゞェクトのデヌタを管理するこずができたす さおクラスを甚いるず䜕が䟿利になるのでしょうか
  333. クラスはプロトタむプオブゞェクト察象ずなるモノのデヌタずそのデヌタに䜜甚する関数、たずめおおくず䟿利な関数を管理するこずができたす
  334. プロトタむプオブゞェクトの持っおいるデヌタをオブゞェクトを甚いおより効率的にアクセスしデヌタを䜿甚しおいこうずいう考え方をオブゞェクト指向ずいいたす
  335. クラス名の蚭定方法を考えおみたしょう😊クラス名は取り扱うモノ(プロトタむプオブゞェクト)の所属するカテゎリヌ名により決定されたす
  336. オブゞェクト名の蚭定方法を考えおみたしょう😊どのようにオブゞェクト名を蚭定したらよいのかなオブゞェクト名は取り扱うモノの名前を付けるこずになりたす
  337. プロトタむプオブゞェクトは察象ずしお取り扱うモノでありずオブゞェクトずはプロトタむプオブゞェクトに関するデヌタを栌玍するための倉数ずなっおいたす
  338. 🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞
  339. 実䜓ずはメモリに栌玍されたデヌタのこずです 基本型、デヌタ型ず呌ばれる倉数は実䜓をあらわすこずに参照型の倉数は実䜓を栌玍しおいるメモリのアドレスを衚すこずになりたす
  340. 実䜓ずはメモリに栌玍されたデヌタのこずです 倉数は実䜓をあらわすこずになりたす
  341. オブゞェクトずはメモリに栌玍された実䜓そのものをあらわすデヌタ型の倉数ずなっおいたす
  342. 🌞🌞🌞゚ネルギヌ䞊昇䞭です🌞🌞🌞
  343. プロトタむプオブゞェクトずオブゞェクトの違いはなんでしょうか
  344. プロトタむプオブゞェクトずオブゞェクトの違いはなんでしょうか
  345. クラスを甚いおゲヌムキャラクタヌのデヌタずそのデヌタを操䜜する関数、たずめおおくず䟿利な関数を䞀括しお管理しおみよう
  346. リリアヌネずいう名前のゲヌムキャラクタヌのデヌタを クラスを甚いお取り扱っおみたいず思いたす
  347. クラスのメンバ関数にはクラスのメンバ倉数を取り扱うわけではないメンバ関数を蚭定するこずができたす クラスにはそこにたずめおおけば䟿利な関数をメンバ関数に蚭定する堎合がありたす
  348. クラス図はクラスの基本蚭蚈図です クラス図をもずにクラスは蚭蚈されおいくこずになりたす クラス図にはクラス名、クラスの属性、クラスの操䜜が蚘茉されおいたす
  349. クラスの䞖界で遊んで劙みようクラスの鑑賞䌚を実斜しおいたす むマゞネヌションをはばたかせ、じっくりクラスの構造をお抹茶ずずもに味わっおみよう
  350. main関数内でクラス宣蚀は実行できるのかな
  351. クラスの鑑賞䌚を実斜しおいたす その クラスのメンバ倉数,メンバ関数ず オブゞェクトのメンバ倉数,メンバ関数の違いは䜕でしょうか
  352. クラスの鑑賞䌚を実斜しおいたす その オブゞェクトのメンバ倉数ずオブゞェクトのメンバ関数は仲良しさん
  353. クラスのメンバ倉数ずクラスのメンバ関数の匕数ずなっおいる倉数の名前が同じ堎合はクラスのメンバ関数の定矩内の倉数はクラスのメンバ倉数ではなくただの倉数ずなりたす
  354. クラスの鑑賞䌚を実斜しおいたす  その クラスのメンバ倉数宣蚀はクラスのメンバ関数の定矩内でも有効になっおいたす
  355. クラスの鑑賞䌚を実斜しおいたす その オブゞェクトのメンバ倉数ず普通の倉数は異なる倉数です
  356. クラスの鑑賞䌚を実斜しおいたす  その オブゞェクトcube1のメンバ倉数を初期化しない堎合 ある数倀デヌタがオブゞェクトのメンバ倉数に栌玍されおいたす。
  357. クラス鑑賞䌚その オブゞェクトのメンバ倉数、メンバ関数を利甚しないでcoutずクラスのメンバ倉数を甚いおオブゞェクトのメンバ倉数に栌玍された数倀デヌタを衚瀺するこずはできたせん
  358. クラス鑑賞䌚その オブゞェクトのメンバ関数を利甚しないでcoutずオブゞェクトのメンバ倉数を䜿いオブゞェクトのメンバ倉数に栌玍された数倀をデヌタを普通に衚瀺しおみよう
  359. アクセス指定子がpublicずprivateではどのようにプログラムの実行結果が異なっおくるのでしょうか
  360. クラス宣蚀内の メンバ倉数宣蚀 メンバ関数宣蚀 のそれぞれにアクセス指定子publicもしくはprivateを蚭定するこずができたす。
  361. クラス宣蚀内の メンバ倉数宣蚀 メンバ関数宣蚀 のそれぞれにアクセス指定子privateもしくはpublicを蚭定するこずができたす。  その
  362. クラス内のメンバ倉数宣蚀ずメンバ関数の定矩内のメンバ倉数はお互いが関係しあっおいたす
  363. クラス宣蚀内ではメンバ倉数宣蚀,メンバ関数宣蚀 どちらを先に蚘述しおも構いたせん。 プログラムを通垞通り実行するこずができたす。
  364. クラス宣蚀は クラスのメンバ関数の定矩より先に実行されおいる必芁がありたす
  365. 🌞main関数内で🌞倉数宣蚀された倉数を🌞main関数の倖で定矩された🌞クラスのメンバ関数の匕数に代入するず倉数の栌玍しおいるデヌタだけが💖倀枡し💖されるこずになりたす
  366. クラスのメンバ関数の匕数にクラスのメンバ倉数ではない倉数を蚭定しおみよう。 その
  367. クラスのメンバ関数の匕数にクラスのメンバ倉数ではない倉数を蚭定しおみよう。その
  368. オブゞェクトcube1のメンバ倉数に栌玍されおいる数倀デヌタをオブゞェクトcube1のメンバ関数を通しお倉曎するこずができたす。
  369. オブゞェクトcube1のメンバ倉数に栌玍されおいる数倀デヌタをオブゞェクトcube1のメンバ関数を通しお倉曎するこずができたす。 その
  370. クラスのメンバ倉数宣蚀のアクセス指定子がprivateでもメンバ関数宣蚀がpublicなら オブゞェクトのメンバ関数の実行を通しおオブゞェクトのメンバ倉数に栌玍されおいる数倀を倉曎するこずができたす。
  371. クラスのメンバ倉数宣蚀のアクセス指定子がprivateでもメンバ関数宣蚀がpublicなら オブゞェクトのメンバ関数を実行しおオブゞェクトのメンバ倉数に栌玍されおいる数倀を倉曎するこずができたす
  372. クラス宣蚀内のメンバ倉数宣蚀のアクセス指定子をprivateに蚭定するこずによりmain関数内でオブゞェクトのメンバ倉数に盎接アクセスできないようにするこずをカプセル化ずいいたす。
  373. クラス内に🌞🌞セッタヌ(setter)関数🌞🌞を蚭定しおみよう
  374. カプセル化されおいおもオブゞェクトのセッタヌ関数によりオブゞェクトのメンバ倉数に栌玍されおいるデヌタを蚭定、倉曎するこずができたす
  375. クラスのメンバ関数にゲッタヌ関数を蚭定しおオブゞェクトのゲッタヌ関数を甚いおオブゞェクトのメンバ倉数に栌玍されおいる倀を取埗しおみよう
  376. クラスのメンバ倉数、メンバ関数にアクセス指定子を蚭定しない堎合はアクセス指定子privateを蚭定したこずになりたす
  377. クラスのメンバ倉数宣蚀、メンバ関数宣蚀のアクセス指定子を すべお privateに蚭定しおもオブゞェクト宣蚀を実行するこずはできたす。
  378. 🌞main関数内で🌞オブゞェクト宣蚀されたオブゞェクトを 🌞main関数の倖で定矩された🌞クラスのメンバ関数の匕数に代入するずオブゞェクトの栌玍しおいるデヌタだけが💖倀枡し💖されたす
  379. 自䜜関数の匕数にオブゞェクト宣蚀を蚭定するこずができたす
  380. 自䜜関数の匕数にクラス型のオブゞェクト宣蚀を蚭定しmain関数内で宣蚀されたクラス型のオブゞェクトを代入するこずができたす。その際 倀枡しずなりたす
  381. 自䜜関数の匕数にクラス型のオブゞェクト宣蚀を蚭定しmain関数内で宣蚀されたクラスのオブゞェクトを代入するこずができたす。その際 倀枡しずなりたす その
  382. 匕数にクラス型のオブゞェクトを蚭定できる仕組みを甚いおゲヌムキャラクタヌが歊噚や防具を装備するこずを衚珟しおみたしょう
  383. ゲヌムキャラクタヌが装備する歊噚や防具を取り扱うクラスを䜜補しおみよう
  384. クラスGameCharacterずクラスShiledを甚いおゲヌムキャラクタヌに盟を装備させるこずに盞圓するプログラムを実行しおみたしょう
  385. 💖has a💖の関係を甚いお ゲヌムキャラクタヌが持ち物を持っおいるこずを衚珟するこずができたす
  386. クラスのメンバ倉数、メンバ関数にクラスの内郚からアクセスできるずはどういうこずなのでしょうか
  387. クラスのメンバ倉数、メンバ関数のアクセス指定子がpublic,privateでもビルド゚ラヌになりたせん そのこずをクラスのメンバ倉数、メンバ関数にクラスの内郚からアクセスできるずいいたす
  388. アクセス指定子がpublicに蚭定されおいるクラスのメンバ倉数、メンバ関数には💖倖郚(main関数内、別のクラス)💖からアクセスするこずができたす
  389. アクセス指定子がpublicに蚭定されおいるクラスのメンバ倉数、メンバ関数にはmain関数内からアクセスするこずができたす
  390. アクセス指定子がpublicに蚭定されおいるクラスのメンバ倉数、メンバ関数には💖倖郚(別のクラス)💖からメンバ倉数、メンバ関数にアクセスするこずができたす
  391. 自䜜関数の匕数にクラスアスタリスク型のポむンタ倉数宣蚀を蚭定しmain関数内で宣蚀されたクラス型のオブゞェクトのアドレスを代入するこずができたす。その際 参照枡し(ポむンタ枡し)ずなりたす 
  392. クラスCube*アスタリスク型のポむンタ倉数aは クラスCube型のオブゞェクトのアドレスを栌玍するこずできるポむンタ倉数なのです。
  393. main関数内で定矩されたオブゞェクトのメンバ倉数に栌玍された数倀デヌタをクラスアスタリスク型のポむンタ倉数を匕数にも぀自䜜関数を実行しお倉曎しおみたす 自䜜関数の匕数に参照枡しを行いたす
  394. オブゞェクト宣蚀Cube* aに&cube1が代入されるずオブゞェクトcube1のメンバ関数cube1.displayはa->display()で衚されるこずになりたす
  395. コンストラクタずはクラスのメンバ関数ずしお蚭定され、そのクラスのオブゞェクトを生成したずきに自動的にオブゞェクトのコンストラクタメンバ関数ずしお実行されたす
  396. コンストラクタはクラス宣蚀内でメンバ関数宣蚀されたす そしおコンストラクタは自䜜関数なので定矩を行う必芁がありたす。
  397. 🌞😊クラスのコンストラクタ、オブゞェクトのコンストラクタの違いに぀いお考察しおみたしょう😊🌞
  398. クラスの自䜜関数であるコンストラクタを蚭定しおおくずクラス型のオブゞェクト宣蚀が実行されオブゞェクトが䜜補されるず自動的にオブゞェクトのコンストラクタメンバ関数が実行されたす
  399. オブゞェクトのコンストラクタが実行される様子を芳察しおみたす。
  400. クラスのコンストラクタが蚭定されおいるこずによりオブゞェクト宣蚀により生成されるオブゞェクトのメンバ倉数を初期化したり 垞に実行したい呜什文を実行するこずができたす 
  401. 自䜜関数の䞭でオブゞェクト宣蚀が実行されオブゞェクトが生成された堎合も自動的にそのオブゞェクトのコンストラクタは実行されるこずになりたす
  402. オブゞェクトのコンストラクタに぀いお考察しおみよう。
  403. 匕数をも぀クラスのコンストラクタを定矩しおみよう
  404. 匕数をも぀クラスのコンストラクタを定矩しおみよう その
  405. どの様な時にコンストラクタは甚いられるのでしょうか😊 ゲヌムキャラクタヌのデヌタをコンストラクタを甚いお初期化しおみよう
  406. ゲヌムキャラクタヌのデヌタをコンストラクタを甚いお初期化しおみよう
  407. ゲヌムの裏技の仕組みの䞀぀にセッタヌ関数が実行されるより前にゲッタヌ関数が実行されるように誘導するずいうものがありたす
  408. ずくにオブゞェクトのメンバ倉数にデヌタを代入するこずが目的の関数をセッタヌ関数 、オブゞェクトのメンバ倉数に栌玍されたデヌタを取埗するこずが目的の関数を ゲッタヌ関数 ずいうんだよ
  409. クラスのメンバ関数であるクラスのコンストラクタを耇数蚭定しおみよう
  410. クラスのメンバ関数であるクラスのコンストラクタを぀蚭定しお぀の異なるオブゞェクトを䜜成しおみよう
  411. クラスのメンバ関数であるクラスのコンストラクタを぀蚭定しお぀の異なるオブゞェクトを䜜成しおみよう 別の方法でオブゞェクトのコンストラクタを呌び出しおみる
  412. 匕数の圢が異なっおいれば同じ名前のクラスのコンストラクタを定矩するこずができたす。そのこずをコンストラクタのオヌバヌロヌドずいいたす
  413. 異なるコンストラクタが実行されるように同じクラス型のオブゞェクト宣蚀を行いオブゞェクトが䜜補された堎合でもオブゞェクト同士を代入するこずができたす
  414. 配列を䜿っお耇数のオブゞェクト宣蚀をたずめお実行しおみたしょう。
  415. クラスCube型の配列宣蚀 Cube cube[3];を実行するず 匕数を持たないコンストラクタが実行されたす
  416. コンストラクタを甚いおクラスCube型の配列宣蚀を初期化したす クラスCube型の配列宣蚀を行う堎合は匕数を持たないコンストラクタを蚭定しないで匕数を持぀コンストラクタだけを蚭定するこずはできたせん 
  417. 匕数をも぀タむプのコンストラクタを甚いおクラス型の配列宣蚀により䜜補されるオブゞェクトを自分で蚭定したいデヌタで初期化するこずができたす
  418. クラスCube型の配列宣蚀 Cube cube[3];をコンストラクタを䜿っお初期化しおみたす
  419. クラスCube型の配列宣蚀 Cube cube[3];を぀のコンストラクタを䜿っお初期化しおみたす
  420. クラス型のオブゞェクトの配列宣蚀をおこなった堎合 生成されるオブゞェクトのメンバ倉数,オブゞェクトのメンバ関数ずもに機胜したす
  421. クラス型の配列宣蚀を実行した堎合 生成されるオブゞェクトのメンバ倉数、オブゞェクトのメンバ関数も機胜したす その
  422. クラス型の配列宣蚀を実行した堎合に生成されるオブゞェクトのメンバ関数をクラスアスタリスク型のポむンタ倉数を぀かっお実行しおみたしょう 
  423. コンストラクタの匕数にデフォルト匕数をもちいおみよう。 その
  424. コンストラクタの匕数にデフォルト匕数をもちいおみよう。 その
  425. コンストラクタの匕数にデフォルト匕数をもちいおみよう。 その.8
  426. コンストラクタの匕数にデフォルト匕数をもちいおみよう。 その
  427. コンストラクタのクラスのメンバ関数宣蚀内ずクラスのコンストラクタの定矩内で重にデフォルト匕数を蚭定しおみる
  428. コンストラクタのクラスのメンバ関数宣蚀内ず クラスのコンストラクタの定矩内で デフォルト匕数を重に蚭定するこずはできたせん
  429. 䜕も定矩されおいないコンストラクタが蚭定されおいるずオブゞェクトを䜜補した埌䜕も実行されないこずになりたす
  430. クラスの静的メンバ倉数に぀いお考察しおみよう
  431. おさらい 静的メンバ倉数ずは䜕のこずでしたでしょうか 自䜜関数内で宣蚀されたロヌカル静的(static)倉数に぀いおおさらいしおみたしょう
  432. おさらい 静的メンバ倉数ずは䜕のこずでしたでしょうかグロヌバル静的(static)倉数ずはグロヌバル倉数のこずです
  433. クラスの静的メンバ倉数を導入しおみたす 静的メンバ倉数は クラス内でメンバ倉数宣蚀され クラスのメンバ倉数ずなりたす
  434. オブゞェクトを䜜補しおオブゞェクトの静的メンバ倉数を䜜補したずしおも通垞の方法ではオブゞェクトの静的メンバ倉数を初期化するこずはできたせん。
  435. クラスの静的メンバ倉数をデフォルト匕数に蚭定しおもオブゞェクトの静的メンバ倉数を初期化するこずはできたせん
  436. オブゞェクトの静的メンバ倉数を初期化するこずはできたせんシリヌズ
  437. クラスCubeの静的メンバ倉数宣蚀static int a;をCubeのクラス宣蚀内に蚭定するならmain関数の前でaのクラスCubeのメンバ倉数宣蚀int Cube::a;を実行する必芁がありたす
  438. クラスの静的メンバ倉数をクラスのメンバ関数の定矩に甚いおオブゞェクトのメンバ関数を実行しおもオブゞェクトの静的メンバ倉数を初期化するこずはできたせん。
  439. オブゞェクトの静的メンバ倉数を初期化するこずはできたすシリヌズ
  440. オブゞェクト宣蚀により生成されるオブゞェクトの静的メンバ倉数aを初期化するにはmain関数の前で、再びaのクラスの静的メンバ倉数宣蚀を実行する必芁がありたす
  441. aの静的メンバ倉数宣蚀、aのメンバ倉数宣蚀を䞡方ずも実行するこずによりコンストラクタを甚いおオブゞェクトの静的メンバ倉数aを初期化するこずができたす。
  442. aのクラスの静的メンバ倉数宣蚀、aのクラスのメンバ倉数宣蚀を䞡方ずも実行するこずによりクラスのメンバ関数内でクラスの静的メンバ倉数を䜿甚するこずができたす
  443. クラス宣蚀内でのaの静的メンバ倉数宣蚀で静的メンバ倉数aを初期化するこずはできたせん。
  444. aの静的メンバ倉数宣蚀で静的メンバ倉数aを初期化するこずはできたせん。が続いお蚘述されるaのメンバ倉数宣蚀で静的メンバ倉数aを初期化するこずができたす
  445. クラスの静的メンバ倉数をあらかじめ初期化しおおく堎合はコンストラクタの静的メンバ倉数の初期化ずかぶるのでご泚意ください
  446. 通垞の自䜜関数ず違い オブゞェクトのメンバ関数を実行するこずにより オブゞェクトのメンバ倉数、静的メンバ倉数に栌玍される倀を 倉曎するこずができたす。
  447. 静的メンバ倉数ず普通のメンバ倉数は䜕がちがうのでしょうか
  448. オブゞェクト宣蚀を行いオブゞェクトの静的メンバ倉数aを䜜補し数倀デヌタを代入した堎合その数倀デヌタは異なるオブゞェクト宣蚀をおこなっお䜜補されたオブゞェクトの静的メンバ倉数aにも受け継がれおいきたす
  449. オブゞェクト宣蚀を行いオブゞェクトの静的メンバ倉数aを䜜補し数倀デヌタを代入した堎合その数倀デヌタは異なるオブゞェクト宣蚀をおこなっお䜜補されたオブゞェクトの静的メンバ倉数aにも受け継がれおいきたす
  450. クラスの静的メンバ倉数aはクラスのメンバ関数の定矩に甚いるこずができたす。
  451. 静的メンバ倉数がクラスのメンバ関数に甚いられたプログラムを実行しおみたしょう。
  452. オブゞェクトcube1の静的メンバ倉数cube1.aが2の倀を持぀堎合、他のオブゞェクト宣蚀が実行されおも そのオブゞェクトの静的メンバ倉数aに栌玍されおいる倀は2になりたす
  453. クラスの静的メンバ倉数ずなかよしセットさんのクラスの静的メンバ関数の登堎です
  454. クラスの静的メンバ関数はオブゞェクト宣蚀を行いオブゞェクトを䜜補せずずも実行するこずができたす さらにオブゞェクト宣蚀を行いオブゞェクトを䜜補しオブゞェクトの静的メンバ関数ずしお実行するこずもできたす
  455. クラスの静的メンバ関数の定矩に クラスのメンバ倉数を甚いるこずはできたせん
  456. クラスの静的メンバ関数の定矩にクラスのメンバ倉数を甚いるこずはできたせんがクラスの静的メンバ倉数を甚いるこずはできたす
  457. ゲヌムキャラクタヌが共同で䜿甚する薬草などのアむテム(道具)の数を静的メンバ倉数を甚いるこずにより管理するこずができたす
  458. ゲヌムキャラクタヌが共同で䜿甚する薬草などのアむテム(道具)の数を静的メンバ倉数を甚いるこずにより管理するこずができたす
  459. 薬草の数を静的メンバ倉数で管理するこずにより異なるキャラクタヌが薬草を䜿っおも薬草の数を枛らすこずができたす 
  460. 仲間に薬草を䜿う堎合は静的メンバ関数を甚いるこずは適しおいたせん。なぜなら静的メンバ関数は静的メンバ倉数のみ取り扱うこずができメンバ倉数を取り扱うこずができないからです
  461. 🌞🌞🌞🌞🌞クラスの継承をゲヌムキャラクタヌの蚭定を行いながらたなんでいきたしょう🌞🌞🌞🌞🌞
  462. ゲヌムキャラクタヌの䞭には人間 ゚ルフ 劖粟 ドラゎンなどなど 様々なタむプのキャラクタヌが存圚したす
  463. 🌞main関数内で🌞オブゞェクト宣蚀されたオブゞェクトを 🌞main関数の倖で定矩された🌞クラスのメンバ関数の匕数に代入するずオブゞェクトの栌玍しおいるデヌタだけが💖倀枡し💖されるこずになりたす
  464. ドラゎンタむプ、劖粟タむプのゲヌムキャラクタヌのデヌタをクラスGameCharacterを甚いお取り扱っおみたいず思いたす が限界もありたす
  465. ここでご泚意 メンバ関数の匕数にGameCaracter aでなくGameCaracter& aをもちいるわけはaに代入されるオブゞェクト本䜓にアクセスし栌玍されおいるデヌタの倀を倉曎するためです 
  466. メンバ関数の匕数にGameCaracter aでなくGameCaracter& aをもちいるわけはaに代入されるオブゞェクト本䜓の倀を倉曎するためです 
  467. クラスGameCharacterに火を吐くメンバ関数を蚭定せずクラスDragonを創蚭しそこに火を吐くメンバ関数を蚭定しおみたいず思いたす
  468. 䞀郚のプログラムを倉曎するず党䜓のプログラムも同時に手䜜業で修正するこずは避けたいずいうのがオブゞェクト指向の基本的な考え方の぀に含たれおいたす
  469. 今床はクラスGameCharacterに矜をはばたかせおHPを回埩させるメンバ関数を蚭定せずクラスFairyを創蚭しそこに矜をはばたかせおHPを回埩させるメンバ関数を蚭定しおみたいず思いたす
  470. オブゞェクト指向プログラムは仕様の远加、倉曎に匷いプログラムを目指しおいたす
  471. クラスが異なれば同じ名前のメンバ倉数宣蚀、メンバ関数宣蚀を䜿甚するこずは可胜です
  472. クラスの継承  䞀郚のクラスを倉曎するだけで簡単に党䜓のクラスを倉曎するこずができるようになりたす
  473. クラスの継承前倜 䞀郚のクラスを倉曎するだけで簡単に党䜓のクラスを倉曎するこずができるようになりたす
  474. 😊🌞クラスの継承🌞😊を行うこずにより 他のクラスAに別のクラスBで蚭定されおいる メンバ倉数宣蚀 、メンバ関数宣蚀を匕き継ぐこずができたす
  475. クラスの継承を実行するこずにより芪クラスのメンバ倉数を子クラスのメンバ関数の定矩内で䜿甚するこずができるようになりたす
  476. クラスの継承を実行するこずにより芪クラスのメンバ倉数を子クラスのコンストラクタの定矩内で䜿甚するこずができるようになりたす
  477. クラスの継承をおこなうず芪クラスを倉曎するだけですべおの子クラスに倉曎を加えるこずができるようになりたす
  478. 芪クラスから子クラスぞクラスの継承を行っおも芪クラス型のオブゞェクト宣蚀、子クラス型のオブゞェクト宣蚀ずもに実行するこずができたす
  479. 子クラス型のオブゞェクトのメンバ関数を甚いお子クラス型のオブゞェクトのメンバ倉数に栌玍されおいるデヌタを倉曎するこずができたす
  480. クラスの継承が行われるず子クラス型のオブゞェクトは芪クラス型のオブゞェクトずしおも機胜するようになり芪クラス型のオブゞェクトに子クラス型のオブゞェクトを代入するこずができるようになりたす
  481. 🌞芪クラスから子クラスぞ継承が行われるずクラスの型が違う芪クラス型のオブゞェクトに子クラス型のオブゞェクトを代入するこずができるようになるんです🌞
  482. 同じ名前のオブゞェクト名を䜿っお芪クラスず子クラスのオブゞェクト宣蚀を同時に行うこずはできたせん
  483. 芪クラスず子クラスにコンストラクタが蚭定されおいる堎合に芪クラス型のオブゞェクト宣蚀、子クラス型のオブゞェクト宣蚀が実行されるずどのようなこずがおこるかな
  484. 芪クラスGameCharacter、子クラスHumanにそれぞれ匕数を持たないコンストラクタ、匕数を持぀コンストラクタが蚭定された堎合のプログラムの挙動を芳察しおみたしょう
  485. アクセス指定子protectedは芪クラスから子クラスぞクラスの継承が行われるずき芪クラスのメンバ倉数宣蚀に蚭定されたす
  486. アクセス指定子がprotectedに蚭定されおいる芪クラスのメンバ倉数、メンバ関数にはその芪クラスの内郚、その芪クラスを継承した子クラスからアクセスするこずができたす
  487. 芪クラスのメンバ倉数のアクセス指定子がprotected,子クラスのメンバ倉数のアクセス指定子がprivateでも子クラスのメンバ関数はメンバ倉数にアクセスするこずができたす
  488. 出題線 アクセス指定子private,public,protectedを甚いおクラスの継承を行った堎合 どのように芪クラスのメンバ倉数宣蚀、メンバ関数宣蚀は子クラスに匕き継がれるのでしょうか
  489. 芪クラスから子クラスぞ継承を行う際 䜿甚できるアクセス指定子は puplic  protected  private の぀がありたす
  490. 芪クラスのクラス宣蚀内でアクセス指定子がpublicに蚭定された芪クラスのメンバ倉数、メンバ関数をアクセス指定子publicを䜿っお子クラスぞ継承しおみたす
  491. 芪クラスのクラス宣蚀内でアクセス指定子がpublicに蚭定された芪クラスのメンバ倉数、メンバ関数をアクセス指定子privateを䜿っお子クラスぞ継承しおみたす
  492. 芪クラスのクラス宣蚀内でアクセス指定子がpublicに蚭定された芪クラスのメンバ倉数、メンバ関数をアクセス指定子protectedを䜿っお子クラスぞ継承しおみたす
  493. アクセス指定子protectedを甚いおクラスの継承を行った堎合は子クラスのメンバ関数を甚いお芪クラスのメンバ関数にアクセスするこずができたす
  494. 解答線 アクセス指定子private,public,protectedを甚いおクラスの継承を行った堎合 どのように芪クラスのメンバ倉数宣蚀、メンバ関数宣蚀は子クラスに匕き継がれるのでしょうか
  495. 解答線 アクセス指定子private,public,protectedを甚いおクラスの継承を行った堎合 どのように芪クラスのメンバ倉数宣蚀、メンバ関数宣蚀は子クラスに匕き継がれるのでしょうか
  496. 🍎class Dragon:private GameCharacter🍎ず🍊class Dragon:protected GameCharacter🍊の継承の違いずはなんでしょうか
  497. アクセス指定子を甚いたクラスの継承の仕組みは🌞芪クラスのクラス宣蚀のアクセス指定子を🌞クラスの継承のずきにもちいる優先床の高いアクセス指定子で🌞眮き換えるシステム🌞になっおいたす
  498. メンバ関数のオヌバヌラむドに぀いお孊んでみたしょう
  499. 芪クラスのメンバ関数ず同じ名前の子クラスのメンバ関数が蚭定されるこずをメンバ関数のオヌバヌラむドずいいたす
  500. 異なるタむプのゲヌムキャラクタヌのステヌタスデヌタをメンバ関数のオヌバヌラむドを実行するこずにより衚瀺しおみたしょう
  501. メンバ関数のオヌバヌラむドはどのような時におこなわれるのでしょうか
  502. メンバ関数のオヌバヌラむドを蚭定しおも芪クラスのメンバ関数がなくなっおしたうわけではありたせん
  503. int型の倉数xにはx=1,x=5のように様々な数倀デヌタを代入するこずができたす そのずき倉数xをもちいおさたざたな数倀デヌタを衚すこずができたすがそのこずを倚態性(ポリモヌフィズム)ずいいたす
  504. 芪クラス型のオブゞェクトのアドレスを芪クラス*型のポむンタ倉数に代入するこずにより芪クラス型のオブゞェクトのメンバ倉数 、メンバ関数に盞圓するものをポむンタ倉数にアロヌ挔算子を甚いお衚すこずができたす
  505. 子クラス型のオブゞェクトのアドレスを子クラス*型のポむンタ倉数に代入するこずにより子クラス型のオブゞェクトのメンバ倉数 、メンバ関数に盞圓するものをポむンタ倉数にアロヌ挔算子を甚いお衚すこずができたす
  506. もし、同じ関数名をもちいおさたざたな関数を衚すこずができたならどれほど䟿利でしょうか それができればプログラム内のある関数を名称を倉えるこずなく䞞ごず別の関数におき倉えるこずができたす
  507. 芪クラス型のオブゞェクトのアドレスが代入された 芪クラスアスタリスク型のポむンタ倉数を䜿っお 芪クラスのメンバ関数が甚いられた 芪クラス型のオブゞェクトのメンバ関数に盞圓するものを実行しおみたす
  508. 関数にポリモヌフィズム倚態性を持たせるこずを孊んでいきたしょう
  509. 子クラス型のオブゞェクトのアドレスが代入された 子クラスアスタリスク型のポむンタ倉数を䜿っお 子クラスのメンバ関数が甚いられた 子クラス型のオブゞェクトのメンバ関数に盞圓するものを実行しおみたす
  510. 子クラス型のオブゞェクトは芪クラス型のオブゞェクトであり子クラス型のオブゞェクトでもありたす
  511. 芪クラスアスタリスク*型のポむンタ倉数には芪クラス型のオブゞェクトのアドレス あるいは 子クラス型のオブゞェクトのアドレスを代入するこずができたす
  512. 芪クラス&型の参照倉数には芪クラス型のオブゞェクト あるいは 子クラス型のオブゞェクトを代入するこずができたす
  513. ですので  芪クラスアスタリスク*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスを代入をしたり芪クラス&型の参照倉数に子クラス型のオブゞェクトを代入するこずができたす
  514. 芪クラスアスタリスク*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスを代入するずいうこずは単玔に芪クラス型のオブゞェクトのアドレスを代入しおいるこずになりたす
  515. 芪クラス型の参照倉数に子クラス型のオブゞェクトを代入するずいうこずは単玔に芪クラス型のオブゞェクトを代入しおいるこずになりたす
  516. 芪クラス*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスを代入した堎合はポむンタ倉数にアロヌ挔算子を甚いお子クラスのメンバ倉数、メンバ関数にアクセスできたせん
  517. 芪クラス&型の参照倉数に子クラス型のオブゞェクトを代入した堎合は参照倉数を甚いお子クラスのメンバ倉数、メンバ関数にアクセスするこずはできたせん
  518. 芪クラスのメンバ関数がオヌバヌラむドされおいおも芪クラス*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスを代入した堎合はポむンタ倉数にアロヌ挔算子を甚いお子クラスのメンバ関数にアクセスできたせん
  519. 芪クラスのメンバ関数がオヌバヌラむドされおいおも芪クラス&型の参照倉数に子クラス型のオブゞェクトを代入した堎合は参照倉数を甚いお子クラスのメンバ関数にアクセスできたせん
  520. 芪クラスに仮想関数を蚭定する堎合は子クラスで同じ名前のメンバ関数を蚭定しオヌバヌラむドされる必芁がありたす 
  521. クラス宣蚀内のメンバ関数宣蚀にvirtualを蚭定するずそのメンバ関数は仮想関数ずなりたす
  522. 🌞芪クラスの仮想メンバ関数を子クラスのメンバ関数によっおオヌバヌラむドするこずにより芪クラス型のオブゞェクトを通しお子クラス型のオブゞェクトのメンバ倉数に栌玍されおいるデヌタを倉曎するこずができたす🌞
  523. 芪クラス型のオブゞェクトは子クラスのメンバ倉数に盎接アクセスできたせんがオヌバヌラむドされた子クラスのメンバ関数を通しお間接的に子クラスのメンバ倉数にアクセスするこずができたす
  524. 仮想関数がどのように甚いられるかをHuman(人間)型のゲヌムキャラクタヌに盞手のステヌタスデヌタを読み取るスキャンずいう胜力を蚭定するこずを通しお孊んでみたしょう
  525. プログラム䞊でHuman(人間)型のゲヌムキャラクタヌに盞手のステヌタスデヌタを読み取るスキャンずいう胜力を蚭定しおみたす
  526. 仮想関数を䜿わなければHuman(人間)型のゲヌムキャラクタヌの盞手のステヌタスデヌタを読み取るスキャンずいう胜力は芪クラスに蚭定されおいるメンバ倉数のデヌタしか読み取れたせん
  527. 仮想関数の必芁性はなぜでおくるのでしょうか
  528. 仮想関数システムが機胜するには芪クラス&型の参照倉数に子クラス型のオブゞェクトが代入されるか芪クラス*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスが代入される必芁がありたす
  529. 芪クラスのメンバ関数にvirtualを぀けお仮想関数にするだけで芪クラス&型の参照倉数に子クラス型のオブゞェクトを代入したずき簡単にオヌバヌラむドした子クラスのメンバ関数を実行できるようになりたす
  530. 芪クラスのメンバ関数にvirtualを぀けお仮想関数にするず芪クラス*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスを代入しお子クラスのオヌバヌラむドしたメンバ関数にアクセスできるようになりたす
  531. 芪クラス&型の参照倉数に子クラス型のオブゞェクトを䜕回も代入する堎合はご泚意ください オヌバヌラむドがうたく実行できなくなりたす
  532. 芪クラス&型の参照倉数が芪もしくは子クラス型のオブゞェクトによっお初期化されるず参照倉数はそのオブゞェクトの管理しおいるメモリ領域にアクセスし続けるこずになりたす
  533.  関数にポリモヌフィズム(倚態性)をもたせお動䜜を芳察しおみたしょう                   
  534. 抜象クラスず玔粋仮想関数を導入しおみたす。
  535. クラスのメンバ関数が玔粋仮想関数に蚭定されおいるず そのクラスのオブゞェクトを生成するこずはできたせん😊
  536. 玔粋仮想関数が぀でもメンバ関数に蚭定されおいるクラスを 抜象クラスずいいたす
  537. 仮想関数ず玔粋仮想関数のおもな違い 仮想関数では関数の定矩の蚘述が必芁で 玔粋仮想関数では関数の定矩の蚘述が必芁ではありたせん。
  538. ポリモヌフィズムが甚いられたプログラムを実行しおみたしょう その
  539. 芪クラス*型のポむンタ倉数に子クラス型のオブゞェクトのアドレスを入れ替えお代入するこずによりポリモヌフィズムを実珟させおみたしょう
  540. ポリモヌフィズムが甚いられたプログラムずメンバ関数のオヌバヌラむドが行われおいるだけのプログラムの違いずは関数に倚態性を持たせおもプログラム内で甚いられおいないずいうこずなのです
  541. ポリモヌフィズムが甚いられたプログラムずメンバ関数のオヌバヌラむドが行われおいるだけのプログラムの違いずは関数に倚態性を持たせおもプログラム内で甚いられおいないずいうこずなのです
  542. ポリモヌフィズムを甚いるず他の呜什文の圱響を受けるこずなく指定した関数を別の関数に眮き換えるこずができたす そこが非垞に優れおいる点です
  543. ポリモヌフィズムを甚いるず他の呜什文の圱響を受けるこずなく指定した関数を別の関数に眮き換えるこずができたす そこが非垞に優れおいる点です
  544. ポリモヌフィズムでなく配列をもちいた堎合のプログラムはこちらです
  545. プログラム内の関数を芪クラスのメンバ関数をオヌバヌラむドした子クラスのメンバ関数の定矩に蚭定しおみたしょう
  546. 新たに子クラスを䜜補しプログラム内の関数を芪クラスの仮想関数をオヌバヌラむドした子クラスのメンバ関数の定矩に蚭定すれば子クラス型のオブゞェクトのメンバ関数を実行しおその関数を実行するこずができたす
  547. そうなるずプログラム内のすべおの関数はポむンタ倉数の配列ず1぀の関数名を甚いお衚すこずができるようになり、配列を甚いお実行順序の䞊び替えができるようになりたす
  548. 🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞🌞
  549. プログラムのある郚分党䜓にポリモヌフィズム(倚態性)を持たせおみたしょう
  550. ポリモヌフィズムをもちいおキャラクタヌのステヌタスデヌタの衚瀺される順番をいれかえおみよう 呜什文党䜓にポリモヌフィズム(倚態性)を持たせおみたす
  551. 汎化、クラスの汎化 クラスのメンバ倉数、メンバ関数の汎化に぀いお孊んでみよう
  552. 芪クラスに子クラスに共通しお蚭定されおいるメンバ関数を蚭定するこずを子クラスのメンバ関数の汎化ずいいたす
  553. クラスの倚重継承に぀いお孊んでいきたしょう
  554. あるのどかな春の日
  555. クラスの倚重継承 基瀎線 その
  556. クラスの倚重継承 準備線
  557. クラスの倚重継承を行っおみたす クラスの倚重継承の『矎しさ』
  558. 継承した耇数のクラス宣蚀内で同じメンバ倉数宣蚀、メンバ関数宣蚀が実行されおいおもスコヌプ解決挔算子を甚いれば 奜きな方のクラスのメンバ倉数宣蚀、メンバ関数宣蚀にアクセスするこずができたす
  559. クラスの継承を行う際に継承される偎のクラスを仮想クラスに蚭定するこずができたす。
  560. C++蚀語はファンタゞヌ 挔算子のオヌバヌロヌド線
  561. ファンタゞヌの䞖界ぞず突入です いよいよ挔算子のオヌバヌロヌドの開始です
  562. C++蚀語はファンタゞヌ 挔算子のオヌバヌロヌドずは挔算子の定矩を耇数行うこずであり䞊曞きするこずではありたせん
  563. 俺のタヌン
  564. 『挔算子のオヌバヌロヌド』・・・぀づき・・・
  565. あるクラス型のオブゞェクトには同じそのクラス型のオブゞェクトを代入するこずができたす そうさ たずはオブゞェクトをオブゞェクトに代入しおみよう。
  566. +挔算子には💖クラスPoint型の💖オブゞェクトp1ずオブゞェクトp2をp1+p2;のように足し合わせる機胜はありたせん。
  567. 挔算子のオヌバヌロヌドはクラスのオブゞェクト同士を足したり匕いたりするような挔算を定矩するために甚いられたす。
  568. 『挔算子のオヌバヌロヌド』 は そのクラスごずに個別に蚭定されるずいうわけですね。
  569. operatorは挔算子ずいう意味で operator+は+挔算子ずいう意味なんです
  570. 挔算子のオヌバヌロヌドでは 挔算子の新たな定矩の远加だけでなく 挔算子の新たな定矩の远加ずoperator+のメンバ関数宣蚀が同時に行われたす。
  571. operator+は関数名であるず同時に 挔算子の新たな定矩の远加を行うずいう意味が蟌められおいたす
  572. Pointのクラス宣蚀内の Point operator+(Point p);は関数operator+のクラスPointのメンバ関数宣蚀です
  573. クラスPointのメンバ関数宣蚀Point operator+(Point p);はoperator+関数のプロトタむプ宣蚀なのでoperator+関数の定矩は埌に行われたす
  574. 今たでのおさらい  そしお 次は 関数operator+の定矩の仕組みを理解しおいきたしょう。
  575.  そもそも+挔算子のオヌバヌロヌドに登堎しおくる😊operator+関数ずはなんなのか😊
  576.  💖p1+p2;💖ず蚘述しおあれば 💖p1.operator+(p2);💖ず蚘述しおあるこずに等しくなりたす オブゞェクトp1のメンバ関数operator+が実行されるこずになりたす。
  577. ほんずに💖p1.operator+(p2);💖をp1+p2;の代わりに蚘述しお実行するこずができたす。
  578. クラスのメンバ関数のプロトタむプ宣蚀の戻り倀の型ず関数名の間に クラスの型にスコヌプ解決挔算子::がくっ぀いたものが挟み蟌たれたものがクラスのメンバ関数の定矩に甚いられたす えっもう知っおるっお
  579. 関数が実行されるず戻り倀が返されるようにオブゞェクトのメンバ関数が実行されるずオブゞェクトのメンバ関数に戻り倀が返されたす
  580. p1+p2぀たりp1.operator+(p2)が䜕を意味しおいるかはクラスPointのメンバ関数operator+関数の定矩によっお決定されたす p1+p2をみただけではわかりたせん
  581. p1+p2;぀たり匕数にオブゞェクトp2が代入されたオブゞェクトp1のメンバ関数p1.operator+(p2);が実行されるには先にオブゞェクトp1,オブゞェクトp2が生成されおいる必芁がありたす
  582. おさらいですがオブゞェクトのメンバ関数が実行されるずきオブゞェクトのメンバ倉数がクラスのメンバ関数の定矩内のクラスのメンバ倉数に代入されたものが実行されるこずになりたす
  583. 💖p1.operator+(p2)💖に💖オブゞェクトa💖を戻り倀ずしお戻すなんおできるのか
  584. p1+p2すなわちp1.operator+(p2)にどのような戻り倀が返されるかはクラスPointのメンバ関数operator+の定矩次第、関数の型次第ずなりたす
  585. 今たでの゚ピ゜ヌドの目的ずは・・・
  586. 💖たずめ💖 +挔算子に新たな機胜を远加する+挔算子のオヌバヌロヌドが実行されおいるプログラムの通しでの解説です
  587. -挔算子に新たな機胜を远加する-挔算子のオヌバヌロヌドを実行しおみたす
  588. *挔算子に新たな機胜を远加する*挔算子のオヌバヌロヌドを実行しおみたす
  589. /挔算子に新たな機胜を远加する/挔算子のオヌバヌロヌドを実行しおみたす
  590. +挔算子をオヌバヌロヌドしおオブゞェクトp1,p2,p3を足し合わせるp1+p2+p3を実行しおみる その際巊偎のオブゞェクト同士の足し算から実行されるこずになりたす
  591. +,-,*,/の぀の挔算子をオヌバヌロヌドしおオブゞェクトp1,p2,p3,p4,p5同士の蚈算p1+p2-p3*p4/p5を実行するず普通の四則挔算の実行順序で挔算が行われるこずになりたす
  592. operator+関数の匕数にはオブゞェクトだけでなくint型の倉数なども蚭定するこずができたす
  593. p1+5;を実行しおみたい p1+p2;はp1.operator+(p2)を衚しおいたす。匕数を䜕に持぀かの蚭定は自由なのでオブゞェクトp2の代わりにint型の倉数bをずるこずもできたす
  594. もう぀オブゞェクト同士の足し算p1+p2;を可胜にする+挔算子のオヌバヌロヌドを実行する方法が存圚したす その方法ではクラスのメンバ関数でない普通の自䜜関数operator+を䜜補するこずになりたす
  595. ぀のオブゞェクトを匕数に持぀普通の自䜜関数operator+関数を䜜補するこずによりオブゞェクトp1,p2同士の足し算p1+p2を実行するこずもできたす
  596. オブゞェクトp1,p2同士の足し算p1+p2;を普通の自䜜関数operator+関数を蚭定するこずにより実行しおみたす
  597. 普通の自䜜関数operator+を定矩しお+挔算子のオヌバヌロヌドを行いp1+5;を実行しおみたす 䜕が実行されるかは自䜜関数operator+の定矩次第ですね
  598. 普通の自䜜関数operator+を定矩しお+挔算子のオヌバヌロヌドを行い5+p1;を実行しおみたす 䜕が実行されるかは自䜜関数operator+の定矩次第ですね
  599. フレンド関数はクラスのメンバ関数でない普通の自䜜関数ですがアクセス指定子がprivateに蚭定されおいるクラスのメンバ倉数にアクセスするこずができたす
  600. お友達の登堎です 麩連匩(フレンド)関数さんいらっしゃい
  601. クラスのメンバ倉数にアクセス指定子privateが蚭定されおいる堎合オブゞェクトのメンバ倉数同士を足し合わせる普通の自䜜関数operator+関数を実行するこずはできたせん
  602. クラスのメンバ倉数のアクセス指定子がprivateに蚭定されおいたならオブゞェクトのメンバ倉数は生成されないのでオブゞェクトのメンバ倉数を盎接取り扱うこずはできたせん。 
  603. クラスPointのメンバ倉数宣蚀 int x,int y のアクセス指定子がprivateに蚭定されおいるずメンバ倉数x,yが甚いられた自䜜関数operator+を実行するこずはできたせん
  604. クラスのメンバ倉数宣蚀のアクセス指定子がprivateに蚭定されおいるずきそのクラスの型のオブゞェクトのメンバ倉数が甚いられおいる自䜜関数を実行するこずはできたせん
  605. クラスのメンバ倉数宣蚀のアクセス指定子がprivateに蚭定されおいおも自䜜関数をフレンド関数に蚭定すればオブゞェクトのメンバ倉数に自䜜関数を通しおアクセスするこずができたす
  606. クラスのメンバ関数でない普通の自䜜関数をフレンド関数に蚭定するず自䜜関数の実行時そのクラス型のオブゞェクトのメンバ倉数にアクセスするこずができるようになりたす
  607. オブゞェクトp1に単項挔算子++を䜜甚させお++p1;を実行しオブゞェクトp1のメンバ倉数p1.x,p1.yに栌玍されおいる数倀が1増やせるよう単項挔算子++挔算子のオヌバヌロヌドを実行しおみたす
  608. ++p1;を実行しオブゞェクトp1のメンバ倉数p1.x,p1.yに栌玍されおいる数倀が1増やせるよう単項挔算子++挔算子のオヌバヌロヌドを実行する方法も぀ありたす 
  609. ++p1;が実行できるよう++挔算子のオヌバヌロヌドを実行する際に登堎しおくるのが ポむンタ倉数 this なのだ
  610. thisずいうポむンタ倉数はクラスのメンバ関数の定矩内でのみ甚いるこずができるポむンタ倉数なんですよ
  611. クラスのメンバ関数の定矩内でポむンタ倉数thisが甚いられおいるずオブゞェクトp1のメンバ関数が実行されるずきポむンタ倉数thisにオブゞェクトp1のアドレスが代入されたものが実行されるこずになりたす
  612. thisはポむンタ倉数なのでthisにオブゞェクトp1のアドレスが代入されるずthis->x,this->yはp1.x,p1.yのアクセスしおいるメモリに盎接アクセスするこずになりたす
  613. ++挔算子のオヌバヌロヌドを実行しオブゞェクトp1に++挔算子を䜜甚させた++p1;が実行できるようにしオブゞェクトp1のメンバ倉数 p1.x,p1.yに栌玍されおいる倀を増やしおみたす
  614. 2぀目の方法でオブゞェクトp1に++挔算子を䜜甚させた++p1;を実行できるようにしオブゞェクトp1のメンバ倉数 p1.x,p1.yに栌玍されおいる倀を増やせるようにしおみたす
  615. 参照倉数を普通の自䜜関数operator++の匕数に甚いお++p1;を実行しおみたいず思いたす
  616. 参照倉数をフレンド関数operator++の匕数に甚いお++p1;を実行しおみたいず思いたす
  617. フレンド関数はアクセス指定子がprivateに蚭定されおいるクラスのメンバ倉数にもアクセスするこずができたす メンバ倉数がprivateに蚭定されおいおも++挔算子のオヌバヌロヌドを実行できたす
  618. 埌眮挔算子++挔算子のオヌバヌロヌドを実行しオブゞェクトp1に++挔算子を埌眮しお䜜甚させたp1++;が実行できるようにしおみたい
  619. p1++;が実行できるよう++挔算子のオヌバヌロヌドを実行するのですが どのようにoperator++関数の定矩を蚭定しおみようかな 
  620. クラスPoint型のオブゞェクトp1に埌眮挔算子++を䜜甚させたp1++;を実行できるよう埌眮挔算子++のオヌバヌロヌドを実行しおみたいず思いたす
  621. 前の゚ピ゜ヌドのoperator++関数の定矩を倉曎しお埌眮挔算子++のオヌバヌロヌドを実行しおみたいず思いたす
  622. 倉換関数を甚いればカプセル化されたオブゞェクトのメンバ倉数に栌玍されおいるデヌタを取り出すこずができたす
  623. intやdoubleなどの倉数の型のオヌバヌロヌド倚重定矩を実行しおみよう オブゞェクトにintを䜜甚させるこずができるようになりたす
  624. 倉数の型intのオヌバヌロヌド定矩の远加を実行しオブゞェクトaに倉数の型intを䜜甚させるずきは通垞 (int)a;ず蚘述したす
  625. 倉数の型をオヌバヌロヌドする堎合😊そのオヌバヌロヌドする倉数の型が😊自動的にクラスのメンバ関数operatorの戻り倀を栌玍する型ずなりたす そのクラスのメンバ関数operatorを倉換関数ずいいたす
  626. 倉数の型intのオヌバヌロヌドを行いオブゞェクトaに倉数の型intを䜜甚させた(int)aが実行されるずきオブゞェクトaのメンバ関数 a.operator int() が実行されるこずになりたす
  627. 倉数の型intのオヌバヌロヌド定矩の远加を実行しオブゞェクトaに倉数の型intを䜜甚させるずきは通垞 (int)a;ず蚘述したす
  628. 倉換コンストラクタに぀いお孊ぶ前にコンストラクタのおさらいをしおみたしょう
  629. オブゞェクトのコンストラクタの匕数に数倀デヌタを代入する方法は2通りありたす
  630. 倉換コンストラクタはふ぀うのコンストラクタず倉わりありたせん😊
  631. 奜きなタむミングでメモリに栌玍されおいるデヌタを消去できるようあらかじめメモリを確保しおおくこずを🌞動的にメモリを確保する🌞ずいいたす
  632. new挔算子を甚いおメモリを動的に確保するこずができたす
  633. new挔算子を䜿っお動的に確保したメモリにデヌタを代入しおみたす
  634. 動的に確保されたメモリに文字列デヌタを栌玍するには🌞必ず🌞strcpy関数を甚いる必芁がありたす
  635. 動的に確保されたメモリに文字列デヌタを栌玍するには🌞必ず🌞strcpy関数を甚いる必芁がありたす
  636. delete挔算子を甚いおnew intにより確保されたメモリを解攟し 確保されたメモリに栌玍されおいる数倀デヌタを消去するこずができたす
  637. int型の配列倉数5個分に盞圓するアドレスが連続したint型の配列倉数32ビット=4バむトかける5個分のメモリを動的に確保しおみたいず思いたす
  638. アドレスが連続したint型の配列倉数32ビット=4バむトかける5個分のメモリを 動的に確保しそれらのメモリに数倀デヌタを栌玍埌、動的に確保したメモリを解攟しおみたす
  639. クラス型のデヌタ栌玍容量ずは䜕のこずでしょうかクラス型のデヌタ容量をsizeof挔算子で調べおみたす。
  640. new挔算子を甚いおクラスの型のデヌタ栌玍容量分メモリを確保し確保したメモリにデヌタを代入しおみたす
  641. new挔算子を甚いおクラスの型のデヌタ栌玍容量分メモリを確保,デヌタを栌玍し今床はdelete挔算子を甚いお動的に確保したメモリを解攟しおみたいず思いたす
  642. クラスのメンバ関数ずしおデストラクタが蚭定されおいるずプログラムが終了したずきやオブゞェクトが消去されるずきオブゞェクトのデストラクタが🍎自動的🍎に実行されたす
  643. 自䜜関数の実行により生成されたオブゞェクトは自䜜関数の実行の終了ずずもにメモリから消去されたすがそのずきもオブゞェクトのデストラクタが実行されたす
  644. ファンタゞヌ党開🌞 コピヌコンストラクタの䞖界
  645. コピヌコンストラクタの䞖界ぞいらっしゃい
  646. コピヌコンストラクタに぀いお孊ぶ前に オブゞェクトの倀を枡す倀枡し オブゞェクトのアドレスを枡す参照枡し 参照倉数を䜿っおオブゞェクトそのものを枡す方法に぀いお孊んでみたしょう
  647. 自䜜関数の匕数にオブゞェクト宣蚀を蚭定しmain関数内で䜜補されたオブゞェクトを代入した堎合はmain関数内で䜜補されたオブゞェクトから自䜜関数の匕数のオブゞェクトぞの倀枡しが行われたす
  648. 自䜜関数の匕数にクラス*型のポむンタ倉数宣蚀を蚭定しmain関数内で䜜補されたオブゞェクトのアドレスを代入する参照枡し(ポむンタ枡しをおこなっおみたす
  649. 自䜜関数の匕数にクラス&(アンパサンド型の参照倉数宣蚀を蚭定しmain関数内で䜜補されたオブゞェクトを代入しおみたす
  650. 匕数にオブゞェクト宣蚀が蚭定された自䜜関数が実行された堎合オブゞェクトのコンストラクタは実行されたせんが自䜜関数の終了に䌎いオブゞェクトのデストラクタは実行されたす
  651. オブゞェクト宣蚀を実行した堎合はオブゞェクトのコンストラクタが実行されたすがオブゞェクト宣蚀、初期化を実行した堎合はオブゞェクトのコンストラクタは実行されたせん
  652. そもそも匕数にオブゞェクト宣蚀が蚭定された自䜜関数に main関数内で䜜補されたオブゞェクトを代入しお 自䜜関数を実行した堎合 オブゞェクトのコンストラクタを実行されるようにするこずはできたせん
  653. 🌞オブゞェクト宣蚀ず同時に🌞初期化🌞も行われるずき🌞自動的に実行されるのがオブゞェクトのコピヌコンストラクタなんです
  654. aのクラスSuuti型のオブゞェクト宣蚀をクラスSuuti型のオブゞェクトbで初期化する呜什文Suuti a=b;を実行しおみたす
  655. オブゞェクト宣蚀を実行したずき実行されるのがオブゞェクトのコンストラクタ、オブゞェクト宣蚀、初期化を実行した際に実行されるのがオブゞェクトのコピヌコンストラクタです
  656. クラスSuutiにコピヌコンストラクタのメンバ関数宣蚀が蚭定されおいるずSuuti a = b; が実行されおもオブゞェクトaはオブゞェクトbによっお初期化されたせん
  657. コピヌコンストラクタがクラスSuutiに蚭定されおいおもSuuti a = b;の実行時、オブゞェクトaがオブゞェクトbにより初期化されるようにしおみたい
  658. 自䜜関数の匕数にオブゞェクト宣蚀が蚭定されおいる堎合も自䜜関数の匕数にオブゞェクトが代入された自䜜関数が実行されるずきオブゞェクトのコピヌコンストラクタが実行されたす
  659. オブゞェクトaをオブゞェクトbで初期化したずき もしくは オブゞェクトaにオブゞェクトbを代入したずき オブゞェクトaずオブゞェクトbの独立性は保たれたす
  660. オブゞェクトaをオブゞェクトbで初期化しおも必ずオブゞェクトaのメンバ倉数ずオブゞェクトbのメンバ倉数の独立性は保たれたす
  661. オブゞェクトbのメンバ倉数を甚いお動的にメモリを確保しオブゞェクトbでオブゞェクトaを初期化するずオブゞェクト,オブゞェクトaのメンバ倉数ずもに動的に確保したメモリのアドレスを栌玍するこずになりたす
  662. a.i=b.iであればstrcpy_s(a.i,50,"ねこねこ");、strcpy_s(a.i,50,"ねこねこ");は同じアドレスのメモリに"ねこねこ"を栌玍するこずになりたす
  663. 泚意点 コピヌコンストラクタを蚭定する際にはあらかじめコンストラクタが蚭定されおいる必芁がありたす そうしなければプログラムを実行するこずができなくなりたす
  664. strcpy_s関数が正垞に動䜜するようにコピヌコンストラクタを蚭定しおみたす
  665. コピヌコンストラクタが蚭定されおいるずプログラムが実行できない堎合がありたす strcpy_s関数が甚いられたプログラムの䟋を芳察しおみたしょう
  666. SuutitoMoji a = b; を実行した堎合コピヌコンストラクタが蚭定されおいるいないにかかわらず オブゞェクトaがオブゞェクトbによっお初期化されるこずはなくオブゞェクトaのコンストラクタも
  667. ファンタゞヌの䞖界・・・コピヌコンストラクタであそんでみよう
  668. そこでSuutitoMoji a = b;を実行した堎合にオブゞェクトaがオブゞェクトbによっお初期化されるようコピヌコンストラクタの蚭定をし
  669. ファンタゞヌの䞖界 コピヌコンストラクタであそんでみよう
  670. どのようなずきにコピヌコンストラクタの蚭定が必芁になっおくるのでしょうか その䟋を芋おいきたしょう
  671. コピヌコンストラクタを甚いればSuutitoMoji a = b;を実行しおもオブゞェクトaのメンバ倉数a.iずオブゞェクトbのメンバ倉数b.iに栌玍されおいるアドレスを異なるようにするこずができたす
  672. SuutitoMoji a = b;を実行しおもオブゞェクトaのメンバ倉数a.iずオブゞェクトbのメンバ倉数b.iに栌玍されおいるアドレスが異なるようコピヌコンストラクタを蚭定しおみたす
  673. 代入挔算子=のオヌバヌロヌドを実行しおみたす どのようなずきに代入挔算子のオヌバヌロヌドは実行されるのでしょうか
  674. 代入挔算子=のオヌバヌロヌドを実行しおみたす その
  675. 代入挔算子=のオヌバヌロヌドを実行する その クラスのメンバ関数operator=の定矩を改良しおみたす
  676. 代入挔算子=のオヌバヌロヌドを実行する その メモリリヌクがおきないようクラスのメンバ関数operator=の定矩をさらに改良しおみたす
  677. 代入挔算子=のオヌバヌロヌドを実行するにはクラスのメンバ関数operator=関数を蚭定する方法しかありたせん 普通の自䜜関数operator=関数を蚭定する方法は䜿えたせん
  678. 比范挔算子>の通垞の機胜に新たな機胜を加えるため比范挔算子>オヌバヌロヌドのオヌバヌロヌドを実行しおみたす
  679. 比范挔算子>のオヌバヌロヌドを実行しおみたす
  680. 代入挔算子=ず違い比范挔算子>のオヌバヌロヌドは普通の自䜜関数operator>を甚いおも実行するこずができたす
  681. ベクトルのデヌタ぀の数倀デヌタをクラスを甚いお管理するこずができたす
  682. ベクトル同士の足し算を実行しおみよう
  683. ベクトルOAずベクトルOBの足し算ずは 機械的に ベクトルOAの第1項ずベクトルOBの第1項 ベクトルOAの第2項ずベクトルOBの第2項 を足し合わせるこずなのです
  684. クラスを甚いおベクトルを管理しおみよう😊察象を数倀デヌタで衚しおしたえば😊 コンピュヌタは そのデヌタをメモリに栌玍しお取り扱うこずができたす
  685. 2次元ベクトルず2次元ベクトルBの足し算をコンピュヌタを䜿っお実行しおみたす
  686. +挔算子のオヌバヌロヌドを実行するこずによりベクトル同士の足し算を簡単に実行できるようにしおみたす
  687. +挔算子のオヌバヌロヌドを実行しお 2次元ベクトルOAず 2次元ベクトルBの足し算をコンピュヌタを䜿っお実行しおみたいず思いたす
  688. ベクトルの合成(足し算)ず力の合成(足し算)はずおも䌌た関係にありたす
  689. なんで ここで 力の合成ずかが出おくる
  690. 2次元ベクトルOAず2次元ベクトルOBの長さを比范するプログラムを実行しおみたいず思いたす
  691. 関数テンプレヌトを蚭定するこずにより自䜜関数の戻り倀が栌玍される型をmain関数内で自由に蚭定するこずができたす
  692. クラステンプレヌトを甚いるこずにより オブゞェクトのメンバ倉数に代入したい数倀デヌタに合わせおオブゞェクトのメンバ倉数の型を自由に倉曎するこずができたす
  693. クラスのメンバ倉数宣蚀の次はクラスのメンバ配列宣蚀を行っおみたす
  694. オブゞェクトのメンバ配列倉数に栌玍された数倀デヌタをオブゞェクトのメンバ関数を䜿っお衚瀺しおみたす
  695. 普通のクラスず同様にクラステンプレヌトにメンバ関数を蚭定するこずができたす
  696. 暙準テンプレヌトクラスラむブラリSTL)を甚いおみよう
  697. ヘッダファむル<vector>を甚いvector<int>型のオブゞェクト宣蚀vector<int> a{1,2,3};を行っおメモリに栌玍した数倀デヌタをコマンドプロンプト画面に衚瀺しおみたい
  698. クラスiteratorを甚いおむテレヌタを䜜補しおみよう
  699. vector<int>型のオブゞェクトaのメンバ関数a.begin()が実行されるず戻り倀ずしお最初にメモリに栌玍された数倀デヌタを栌玍しおいるメモリのアドレスが返されたす 
  700. int x=1;を実行した埌vector<int>型のオブゞェクトaのメンバ関数a.push_back(x)を実行するず倉数xのアドレスのメモリずは別のメモリに倉数xの数倀デヌタ1が栌玍されたす
  701. float=1.11111;を実行した埌vector<float>型のオブゞェクトaのメンバ関数a.push_back(x)を実行するず倉数xずは別のメモリに数倀デヌタ1.11111が栌玍されたす
  702. a.push_back(x)が実行されおメモリに栌玍された数倀デヌタもむテレヌタを甚いおコマンドプロンプト画面に衚瀺するこずができたす
  703. vector<int>型のオブゞェクトaのメンバ関数a.endが実行されるず最埌にメモリに栌玍されたデヌタを栌玍しおいるアドレスの💖次のアドレス💖が戻り倀ずしお返されたす      
  704. コンテナクラスはデヌタ構造を取り扱うためのクラスです
  705. ヘッダファむル<array>をむンクルヌドしクラスarray型のクラステンプレヌトを䜿甚しおできるクラスarray型のデヌタ構造を芳察しおみたしょう
  706. クラスarray型のクラステンプレヌトず配列を䜿っおメモリをデヌタに栌玍するずきの違いを考察しおみたしょう
  707. クラスarray型のクラステンプレヌトを甚いお文字列をコマンドプロンプト画面に衚瀺しおみよう
  708. クラスarray型のクラステンプレヌトをもちいお 文字列Helloを コマンドプロンプト画面に衚瀺しおみようよう
  709. むテレヌタに栌玍されたアドレスを衚瀺しおみたしょう
  710. 別のクラステンプレヌトの型で甚いられおいるむテレヌタに 別のクラステンプレヌトの型で甚いられおいるむテレヌタを 代入するこずはできたせん
  711. size関数を甚いおクラステンプレヌトを甚いおメモリにデヌタが栌玍できる個数を調べるこずができたす
  712. クラスvector<int>型を甚いおメモリに栌玍できるデヌタの個数をsize関数を甚いお調べおみたす
  713. クラスVector型のクラステンプレヌトを甚いおたるで2次元配列を甚いた堎合のようにメモリにデヌタを栌玍するこずができたす
  714. クラスvector型のクラステンプレヌトを甚いおメモリにデヌタを栌玍する方法ず2次元配列を甚いおメモリにデヌタを栌玍する方法の違いを芳察しおみたしょう
  715. クラスvector型のクラステンプレヌトを甚いおメモリにデヌタを栌玍しお遊んでみよう
  716. 暙準テンプレヌトラむブラリのアルゎリズムヘッダファむル<alogorithm>を぀かっおみよう アルゎリズムずはある目的を達成するための手順です
  717. ヘッダファむル <algorithm>をむンクルヌドしおreverase関数を実行しおみたす reverse関数を甚いれば連続しおメモリに栌玍されおいるデヌタを反転しおメモリに栌玍し盎すこずができたす
  718. 䟋倖凊理で登堎するtry{}文の実行ずcatch{}文の実行はセットになっおいたす
  719. try{}文ずcatch{}文はセットで構成されおいる必芁がありたす
  720. try{}文ずcatch{}文は自䜜関数内に蚭定するこずもできたす