1. CãšC++ã®åºæ¬çãªéã
ããã°ã©ãã³ã°èšèªã«ã¯ãããããã®ç¹æ§ãæ©èœãè±å¯ã«ååšããŸããç¹ã«ãCèšèªãšC++èšèªã®éãã«ã€ããŠæ··ä¹±ãæãã人ãå€ãã§ãããããããã®éããç解ããããšã§ãããå¹ççã«ããã°ã©ãã³ã°ãè¡ãããšãå¯èœãšãªãããŸããé©åãªèšèªéžæã容æã«ãªããŸãã
ãã®èšäºã§ã¯ãCèšèªãšC++èšèªã®åºæ¬çãªéãã«ã€ããŠå ·äœçã«è§£èª¬ããŸããäž»ã«ãèšèªäœç³»ãã¡ã¢ãªç®¡çãåã·ã¹ãã ãäŸå€åŠçã®4ã€ã®èŠ³ç¹ããæ¯èŒããŸãã
å ·äœçãªéãã¯ä»¥äžã®é ç®ã§è©³çŽ°ã«èŠãŠãããŸãã
1.1 CãšC++ã®èšèªäœç³»
Cèšèªã¯æç¶ãåããã°ã©ãã³ã°èšèªã§ãããã°ã©ã ã®æµããäžé£ã®æç¶ãïŒæ©èœïŒãšããŠå®çŸ©ããŸããäžæ¹ãC++ã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã§ãããŒã¿ãšãããæäœããæç¶ããäžã€ã®ãªããžã§ã¯ããšããŠæããŸãã
èšèªäœç³»ã®éãã¯ãããã°ã©ã ã®èšèšæ¹æ³ã«çŽæ¥åœ±é¿ããŸããC++ã®ãªããžã§ã¯ãæåã¯ã倧èŠæš¡ãªããã°ã©ã ãããŒã éçºã«ãããŠã¯Cèšèªããã管çã容æã§ãã
ã ãããšãã£ãŠCèšèªãå£ã£ãŠããããã§ã¯ãªãããªãœãŒã¹ãéãããç°å¢ãçµã¿èŸŒã¿ã·ã¹ãã ã§ã¯ãCèšèªã®ã·ã³ãã«ããæ±ããããŸãã
1.2 CãšC++ã®ã¡ã¢ãªç®¡ç
ã¡ã¢ãªç®¡çã«ãããŠãCãšC++ã¯ç°ãªããŸããCèšèªã§ã¯ãã¡ã¢ãªç®¡çã¯ããã°ã©ããå šãŠæç¶ãã§è¡ããŸããããã«å¯ŸããŠC++ã§ã¯æ°ããªæŠå¿µã§ããã³ã³ã¹ãã©ã¯ã¿ãšãã¹ãã©ã¯ã¿ãå ãããŸããã
ã³ã³ã¹ãã©ã¯ã¿ãšãã¹ãã©ã¯ã¿ã䜿çšããããšã§ããªããžã§ã¯ãã®çæãšç Žæ£ãèªååããããšãå¯èœãšãªããŸããããã«ããã¡ã¢ãªã®ç®¡çã容æã«ãªãããã¥ãŒãã³ãšã©ãŒãé²ãããšãã§ããŸãã
ãããããããã®æŠå¿µã¯ç解ãšé©åãªäœ¿çšãå¿ èŠãšããŸããããã§ãªãå Žåãæãã¬ãã°ãçãããšãããã®ã§æ³šæãå¿ èŠã§ãã
1.3 CãšC++ã®åã·ã¹ãã
Cèšèªã®åã·ã¹ãã ã¯æ¯èŒçã·ã³ãã«ã§ãæŽæ°åãæµ®åå°æ°ç¹åãæååããã€ã³ã¿åãªã©ããããŸããããããC++ã§ã¯ããã«å ããŠã¯ã©ã¹åãæ°ãã«è¿œå ãããŸããã
ã¯ã©ã¹åã¯ãªããžã§ã¯ãæåãå®çŸããããã®éèŠãªèŠçŽ ã§ãããæ°ããªããŒã¿åãå®çŸ©ããããšã§ãããé«åºŠãªæœè±¡åãå¯èœã«ãªããŸãã
ããã«ãããããã°ã©ã ã®å¯èªæ§ãä¿å®æ§ãåäžããŸããäžæ¹ãCèšèªã®ãããªã·ã³ãã«ãªåã·ã¹ãã ããã³ã³ãã¯ããªã³ãŒããæžãéã«ã¯æçšã§ãã
1.4 CãšC++ã®äŸå€åŠç
Cèšèªã§ã¯ããšã©ãŒãã³ããªã³ã°ã¯æ»ãå€ã§è¡ãã®ãäžè¬çã§ããããšã©ãŒãçºçããå Žåã®åŠçãããã°ã©ããæ瀺çã«èšè¿°ããå¿ èŠããããŸããäžæ¹ãC++ã§ã¯äŸå€åŠçãšããæŠå¿µãå°å ¥ãããŸããã
äŸå€åŠçã¯ãšã©ãŒãçºçããå Žåã«èªåçã«åŠçãè¡ãæ¹æ³ã§ãããã°ã©ã ã®å¶åŸ¡ãããŒãå€§å¹ ã«æ¹åããŸããããã«ãããšã©ãŒã®äŒæãæ瀺çã«ãªããããããå®å šãã€å¹ççãªããã°ã©ã ãå¯èœã«ãªããŸãã
ãã ããCèšèªã®ãšã©ãŒãã³ããªã³ã°ãããã®å¯Ÿè±¡ãšãªããšã©ãŒãæ確ã§ãåçŽãªããã°ã©ã ã§ã¯ååã«æ©èœããŸãã
2. CãšC++ã®ããã°ã©ãã³ã°ã¹ã¿ã€ã«ã®éã
CãšC++ã¯ã©ã¡ããäžè¬çã«äœ¿çšãããé«æ§èœãªããã°ã©ãã³ã°èšèªã§ããããã®ããã°ã©ãã³ã°ã¹ã¿ã€ã«ã¯å€§ããç°ãªããŸããããã§ã¯ãããããã®ç¹æ§ãšéèŠãªéãã玹ä»ããŸãã
ãŸãæåã«ãCèšèªã¯ããã·ãŒãžã£ã«ããã°ã©ãã³ã°ã®ä»£è¡šäŸã§ãããããã©ãŒãã³ã¹ãæ±ããããé åã«åºã䜿ãããŠããŸããäžæ¹ã®C++ã¯Cã®ç¹æ§ãç¶æ¿ãã€ã€ããªããžã§ã¯ãæåããã°ã©ãã³ã°ããã³ãã¬ãŒãã¡ã¿ããã°ã©ãã³ã°ãšãã£ãé«åºŠãªæ©èœãåãå ¥ããããè¡šçŸåã®ããããã°ã©ãã³ã°ã¹ã¿ã€ã«ãæäŸããŠããŸãã
ããã§ã¯ãããããã®ã¹ã¿ã€ã«ã詳现ã«èŠãŠãããŸãããã
2.1 Cã®ããã·ãŒãžã£ã«ããã°ã©ãã³ã°
Cã®ããã°ã©ãã³ã°ã¹ã¿ã€ã«ã¯ããã·ãŒãžã£ã«ïŒæç¶ãåïŒã§ãã³ãŒãã¯é 次å®è¡ãããäžé£ã®æç¶ããããªããŸããå ·äœçãªåŠçæé ãæ確ã«èšè¿°ããã®ãç¹åŸŽã§ãå³å¯ãªã³ã³ãããŒã«ãå¯èœã§ãã
ããããªãããããã·ãŒãžã£ã«ããã°ã©ãã³ã°ã¯ã³ãŒãã®åå©çšãä¿å®ãé£ãããšãææãããŠããŸãã倧èŠæš¡ãªããã°ã©ã ã§ã¯ç¹ã«ãå€æŽã«åŒ±ããšã©ãŒãã³ããªã³ã°ãè€éãªå ŽåããããŸãã
ããã§ãããã®ããã©ãŒãã³ã¹ãšå¹çæ§ããCã¯çµã¿èŸŒã¿ã·ã¹ãã ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éçºãªã©ã§æŽ»çšãããŠããŸãã
2.2 C++ã®ãªããžã§ã¯ãæåããã°ã©ãã³ã°
C++ã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°ïŒOOPïŒãæ¡çšããŠãããããŒã¿ãšãããæäœããã¡ãœãããäžã€ã®åäœïŒãªããžã§ã¯ãïŒã«ãŸãšããããšã§ãã³ãŒãã®åå©çšãä¿å®æ§ãåäžããŸãã
ãªããžã§ã¯ãæåã«ã¯ãã«ãã»ã«åãç¶æ¿ãå€æ æ§ã®3ã€ã®å€§ããªç¹æ§ããããŸãããããã«ãããçŸå®äžçã®äºç©ãèªç¶ã«è¡šçŸããããšãå¯èœã«ãªãããã倧èŠæš¡ãªããã°ã©ã ããã管çãããããªããŸãã
ãããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯åå¿è ã«ãšã£ãŠã¯é£æ床ãé«ãããŸããã®æœè±¡æ§ããããã°ã©ã ã®ããã©ãŒãã³ã¹ãèœã¡ãæãããããŸãã
2.3 C++ã®ãã³ãã¬ãŒãã¡ã¿ããã°ã©ãã³ã°
C++ã§ã¯æŽã«ãã³ãã¬ãŒãã¡ã¿ããã°ã©ãã³ã°ãå©çšããããšãã§ããŸããããã«ãããã³ã³ãã€ã«æã«åŠçãè¡ãããšã§å®è¡é床ãåäžãããããæ±çšçãªã³ãŒããèšè¿°ãããããªããŸãã
ãã®äžæ¹ã§ããã³ãã¬ãŒãã¡ã¿ããã°ã©ãã³ã°ã¯å°éçãªç¥èãèŠæ±ãã誀çšãããšãããã°ãå°é£ãªã³ãŒããšãªãåŸãŸããããã«ããã®å©çšã¯æ éã«ãªãã¹ãã§ãã
ããããå¹çæ§ãšåŠçé床ãè¿œæ±ããäžã§ãC++ã®ãã³ãã¬ãŒãã¡ã¿ããã°ã©ãã³ã°ã¯åŒ·åãªããŒã«ã§ããããšã¯ééããããŸããã
2.4 CãšC++ã®ããã¯ã¹ããã°ã©ãã³ã°
æåŸã«ãCãšC++ã¯äºææ§ã®ããéšåãå€ããããäžéšã®æ¡ä»¶äžã§ããã¯ã¹ããã°ã©ãã³ã°ãå¯èœã§ããããã«ãããæ¢åã®Cã³ãŒãããŒã¹ã掻çšãã€ã€ãC++ã®é«åºŠãªæ©èœãåãå ¥ããããšãå¯èœã«ãªããŸãã
ãã ããCãšC++ã¯ææ³ãèšèšãç°ãªãèšèªã§ãããã®ãããæå³ããªãåäœãåŒãèµ·ããããšããããŸããããã¯ã¹ããã°ã©ãã³ã°ãè¡ãéã¯ãããããã®æ§è³ªãç解ãã泚ææ·±ãè¡ãããšãéèŠã§ãã
ãããã®éããç解ããããšã§ãããªãã®ãããžã§ã¯ãã«æé©ãªéžæãããããšãå¯èœã«ãªããŸããCãšC++ãããããã«ã¯é·æãšçæãããããã®ããŒãºã«å¿ããŠé©åã«éžæããããšãæ±ããããŸãã
3. CãšC++ã®ããã©ãŒãã³ã¹ã®éã
ããã°ã©ãã³ã°èšèªãéžæããéãæ§èœé¢ã®èæ ®ã¯é¿ããŠéããŸããããã®çºãããã§ã¯CãšC++ã®ããã©ãŒãã³ã¹ã®éãã«ã€ããŠãå ·äœçã«æ¯èŒããŠã¿ãããšæããŸãã
äž»ã«ãããã©ãŒãã³ã¹ã®ã¢ã¹ãã¯ãããèŠããšãã³ã³ãã€ã«é床ãããã°ã©ã å®è¡é床ãã¡ã¢ãªæ¶è²»éãå®å šæ§ã®4ã€ã®èŠçŽ ãéèŠã§ãããããåèŠçŽ ã«ã€ããŠCãšC++ãæ¯èŒããŸãã
ãªãã以äžã§è¿°ã¹ãå 容ã¯äžè¬çãªã±ãŒã¹ã«ã€ããŠã®è©äŸ¡ã§ãããå ·äœçãªãããžã§ã¯ãã課é¡ã«ãã£ãŠçµæã¯ç°ãªãå ŽåããããŸãã
3.1 CãšC++ã®ã³ã³ãã€ã«é床æ¯èŒ
äžè¬çã«ãCã®ã³ã³ãã€ã«é床ã¯C++ãããéããšãããŠããŸããC++ã¯Cã«æ¯ã¹ãŠæ©èœãè±å¯ãªãããã³ã³ãã€ã©ã解æããæ å ±éãå¢ããçµæçã«ã³ã³ãã€ã«é床ãé ããªããŸãã
ãã ããã³ã³ãã€ã«é床ãã·ã¹ãã éçºã®å šäœçãªçç£æ§ã«äžãã圱é¿ã¯éå®çã§ããããããã°ãã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ãªã©éçºããã»ã¹å šäœãèæ ®ãããšãC++ã®æ©èœã®è±å¯ããçç£æ§ãåäžãããå¯èœæ§ããããŸãã
éèŠãªç¹ãšããŠãã³ã³ãã€ã«é床ã ãã§ãªããéçºå šäœã®ããã©ãŒãã³ã¹ãèããããšãå¿ èŠã§ãã
3.2 CãšC++ã®å®è¡é床æ¯èŒ
å®è¡é床ã«ã€ããŠããCã®æ¹ãäžè¬çã«ã¯é«éãšãããŠããŸããC++ã¯ã¯ã©ã¹ããã³ãã¬ãŒããªã©ã®æ©èœãæäŸããŠããããã®ãªãŒããŒããããå®è¡é床ã«åœ±é¿ãäžããå ŽåããããŸãã
ããããæè¿ã®C++ã³ã³ãã€ã©ã¯ãããŸããŸãªæé©åæ©èœãæã£ãŠããããã®å·®ã¯å€§å¹ ã«çž®å°ãããŠããŸããå ·äœçãªå®è¡é床ã¯ã䜿çšããæ©èœãã¢ã«ãŽãªãºã ãããã°ã©ãã³ã°ã¹ãã«ã«å€§ããäŸåããŸãã
ãããã£ãŠãå®è¡é床ã«ã€ããŠã¯ãCãšC++ã®éã§äžæŠã«çµè«ãåºãããšã¯ã§ããŸããã
3.3 CãšC++ã®ã¡ã¢ãªæ¶è²»éæ¯èŒ
C++ã¯Cã«æ¯ã¹ãŠè±å¯ãªæ©èœãæã£ãŠããŸããããã®äžæ¹ã§ããããã®æ©èœã¯è¿œå ã®ã¡ã¢ãªãå¿ èŠãšããŸãããã®ãããã¡ã¢ãªæ¶è²»é¢ã§ã¯CãC++ã«åªããŠããããšãäžè¬çã§ãã
ããããC++ã®STLïŒStandard Template LibraryïŒãªã©ã®æ©èœãé©åã«äœ¿çšãããšãã¡ã¢ãªç®¡çãå¹çåããã¡ã¢ãªäœ¿çšéãæå°éã«æããããšãã§ããŸãã
ãããã£ãŠãã¡ã¢ãªæ¶è²»éã«ã€ããŠããå ·äœçãªç¶æ³ã䜿çšããæ©èœãããã°ã©ãã³ã°ã¹ãã«ã«ãããŸãã
3.4 CãšC++ã®å®å šæ§æ¯èŒ
C++èšèªã¯ãCèšèªã«å¯ŸããŠæ§ã ãªã»ãã¥ãªãã£æ©èœãè¿œå ããŠããŸããäŸãã°ãäŸå€åŠçãã¯ã©ã¹ããªããžã§ã¯ãæåããã°ã©ãã³ã°ãªã©ããããŸãããããã®æ©èœã¯ãã·ã¹ãã ã®å®å šæ§ãåäžãããå¯èœæ§ããããŸãã
äžæ¹ã§ãã»ãã¥ãªãã£ã¯èšèšãå®è£ ã®è³ªã«å€§ããäŸåããŸããCãC++ãé©åãªææ³ã§èšèšãšå®è£ ãè¡ãã°ãé«åºŠãªã»ãã¥ãªãã£ãéæããããšãå¯èœã§ãã
çµè«ãšããŠãCãšC++ããããã®èšèªãšããããã®ç¹æ§ãç解ããé©åã«å©çšããããšãæãéèŠã§ãã
4. CãšC++ã®å©çšã·ãŒã³ã®éã
CãšC++ã¯ããããããç¹æ§ã掻ãããã·ãŒã³ãç°ãªããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãããããã®äž»ãªäœ¿çšå Žé¢ã«ã€ããŠè§ŠããŠãããŸãã
4.1 CãšC++ã®çµã¿èŸŒã¿ã·ã¹ãã ã§ã®äœ¿çš
çµã¿èŸŒã¿ã·ã¹ãã ã®éçºã§ã¯ãCèšèªãããå©çšãããŸããCèšèªã¯ã¡ã¢ãªç®¡çãã·ã³ãã«ã§ãæ§èœãéèŠãããããããªãœãŒã¹ãéãããç°å¢ã«é©ããŠããŸãããããã®æ§è³ªã«ãããçµã¿èŸŒã¿ã·ã¹ãã ã§ã¯åºãæ¡çšãããŠããŸãã
äžæ¹ãC++ã¯çµã¿èŸŒã¿ã·ã¹ãã ã®éçºã«ã䜿ãããŸãããå€æ©èœæ§ãšãªããžã§ã¯ãæåãç¹åŸŽã§ããC++ã¯èšèšãã¿ãŒã³ã®å°å ¥ãªã©ã倧èŠæš¡ãªãããžã§ã¯ãã§ã®éçºå¹çãé«ããããã«äœ¿çšãããŸãã
ãã ããC++ã®æ©èœã®å€ãã¯çµã¿èŸŒã¿ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãäœäžãããå¯èœæ§ããããŸãããã®ãããå¿ èŠååãªæ§èœãæ±ããããçµã¿èŸŒã¿ã·ã¹ãã ã§ã¯Cèšèªãéžã°ããããšãä¹ããŸãã
4.2 CãšC++ã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³éçºã§ã®äœ¿çš
C++ã¯ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®éçºã§ã¯ãç¹ã«ãŠã£ã³ããŠãºç°å¢ã§ããå©çšãããŸããGUIã©ã€ãã©ãªãå å®ããŠããããšããŸããªããžã§ã¯ãæåãç¹åŸŽã ããã§ãããã®ãããå€ãã®å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã¯C++ã§éçºãããŠããŸãã
Cèšèªããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®äœæã«ã¯å©çšãããŸãããGUIã®äœæã«ã¯ä»ã®èšèªãšæ¯èŒããŠé£æ床ãé«ããããç¹ã«é«æ§èœãã¡ã¢ãªå¹çãå¿ èŠãªå Žåã«éžæãããŸãã
ãããã£ãŠãé«åºŠãªæ©èœããŠãŒã¶ãŒãã¬ã³ããªãŒãªGUIãå¿ èŠãªå Žåã¯C++ããªãœãŒã¹ãå¶éãããŠãããé«ãããã©ãŒãã³ã¹ãæ±ããããå Žåã¯Cèšèªãéžã°ããŸãã
4.3 CãšC++ã®ã²ãŒã éçºã§ã®äœ¿çš
C++ã¯ã²ãŒã éçºã«ãããŠäž»æµã®èšèªã§ãã匷åãªã©ã€ãã©ãªãæã£ãŠããããŸããªããžã§ã¯ãæåãç¹åŸŽã§ããããã倧èŠæš¡ãªã²ãŒã éçºã«ããå©çšãããŸããå ·äœçã«ã¯ã3Dã²ãŒã ãšã³ãžã³ãšããŠå€§ããªã·ã§ã¢ãæã€Unreal Engineã¯C++ã§æžãããŠããŸãã
Cèšèªãã²ãŒã éçºã§äœ¿çšãããŸãããäž»ã«ããã©ãŒãã³ã¹ãå¿ èŠãªéšåãå°èŠæš¡ãªã²ãŒã ã«å©çšãããŸããäŸãã°ãçµã¿èŸŒã¿ã·ã¹ãã çšã®ã²ãŒã ãã¬ããã²ãŒã ã®äœæã«é©ããŠããŸãã
ããããçŸä»£ã®ã²ãŒã éçºã§ã¯å€æ©èœæ§ãšèšèšã®æè»æ§ãæ±ããããããã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯C++ãäž»ã«éžã°ããŸãã
4.4 CãšC++ã®ããŒã¿è§£æã§ã®äœ¿çš
CèšèªãšC++ã¯ããŒã¿è§£æã«ã䜿ãããŸãããä»ã®æ å ±åŠçããããŒã¿è§£æã§ã®äœ¿çšã¯å°ãªãã§ãããšãã«Cèšèªã¯ããŒã¿è§£æçšã®ã©ã€ãã©ãªãããŸãè±å¯ã§ã¯ãªããããããŒã¿è§£æã«ã¯ä»ã®èšèªãå€ã䜿ãããŸãã
äžæ¹ãC++ã¯æ©æ¢°åŠç¿ãªã©ã®ããŒã¿è§£æã§ãçšããããŸããC++ã¯å®è¡é床ãéãããªãœãŒã¹ãå¹ççã«äœ¿ããã®ã§ã倧èŠæš¡ãªããŒã¿ãé«éãªåŠçãèŠæ±ãããå Žåã«ã¯æå©ã§ãã
ããããããŒã¿è§£æã§ã¯éçºé床ãçµæã®å¯èŠåã倧åã§ãããããPythonãRãªã©ã®ãããªå°éã®èšèªãäž»æµãšãªã£ãŠããŸããC++ã¯ãããã®èšèªãšçµã¿åãããŠäœ¿çšãããããšãå€ãã§ãã
5. CããC++ãžã®ç§»è¡ã¬ã€ã
ããã°ã©ãã³ã°èšèªCããC++ãžã®ç§»è¡ã¯ããã®éããç解ãé©åãªå¯Ÿçãè¬ããããšã§å¹ççã«è¡ãããšãã§ããŸãã以äžã§ã¯å ·äœçãªãã€ã°ã¬ãŒã·ã§ã³ã®ãã€ã³ãã泚æç¹ãæ°æ©èœã®æŽ»çšæ¹æ³ãªã©ã詳ãã解説ããŸãã
5.1 CããC++ãžã®ãã€ã°ã¬ãŒã·ã§ã³ã®èæ ®ç¹
ãŸãæåã«èæ ®ãã¹ãã¯å€æ°ã®æ±ãã§ãã C++ã§ã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ç¹æ§ãçãããå€æ°ãã¯ã©ã¹ãšããŠå®çŸ©ããããšãå¯èœã§ãããã®æ©èœã掻çšããããšã§ãããå ç¢ãªã³ãŒããæžãããšãã§ããŸãã
次ã«ãé¢æ°ã®ãªãŒããŒããŒãã§ããC++ã§ã¯ååã®é¢æ°ã§ãåŒæ°ã®æ°ãåãç°ãªãã°å¥ã®é¢æ°ãšããŠæ±ãããšãå¯èœã§ããããã«ããã³ãŒãã®å¯èªæ§ãäžããããšãã§ããŸãã
ãŸããC++ã¯Cãããçºå±ãããšã©ãŒãã³ããªã³ã°æ©èœãæããŠããŸããäŸå€åŠçã掻çšããããšã§ãšã©ãŒç¶æ³ãããå ·äœçã«ææ¡ããé©åãªå¯Ÿå¿ãå¯èœãšãªããŸãã
5.2 C++ã§ã®æ°æ©èœã®å©çšã¬ã€ã
C++ã¯Cã®æ©èœãç¶æ¿ãã€ã€ãããã€ãã®æ°æ©èœãå ãã£ãŠããŸããããããããŸã掻çšããããšã§ãããå¹ççã§å質ã®é«ãã³ãŒããäœæããããšãã§ããŸãã
æãç¹çãã¹ãæ°æ©èœã¯ã¯ã©ã¹ã§ããã¯ã©ã¹ã掻çšããããšã§ãããŒã¿ãšãããæäœããã¡ãœãããäžã€ã®ããã±ãŒãžãšããŠæ±ãããšãå¯èœã§ããããã«ããããªããžã§ã¯ãæåã®ããã°ã©ãã³ã°ãè¡ãããšãå¯èœãšãªããŸãã
ãŸããSTLïŒStandard Template LibraryïŒã®å©çšãéèŠãªãã€ã³ãã§ããSTLãå©çšããããšã§ãããŒã¿æ§é ãã¢ã«ãŽãªãºã ãç°¡æã«å®è£ ããããšãå¯èœãšãªããŸãã ããã«ããéçºæéã®ççž®ãã³ãŒãå質ã®åäžãèŠèŸŒãŸããŸãã
5.3 CãšC++ã®ã³ãŒãäºææ§
C++ã¯Cã®ã¹ãŒããŒã»ãããšããŠèšèšãããŠãããããåºæ¬çã«Cã®ã³ãŒãã¯C++ã§ãåäœããŸãããããããªããžã§ã¯ãæåç¹æã®æ©èœãæã€C++ã§ãåçŽã«Cã®ã³ãŒããæµçšãããšãããã©ãŒãã³ã¹ãä¿å®æ§ã«åé¡ãçããå¯èœæ§ããããŸãã
ã€ãŸããCã®ã³ãŒããC++ã§åäœãããããšã¯å¯èœã§ãããæé©åãé©çšããããã«ã¯äžéšã®ä¿®æ£ãå¿ èŠã§ãããšããç¹ãç解ããŠããããšãéèŠã§ãã
å ·äœçãªä¿®æ£ç¹ãšããŠã¯ãCã§ã¯ã°ããŒãã«é¢æ°ã®å€çšãèŠåããããŸãããC++ã§ã¯å¯èœãªéãé¢æ°ã¯ã¯ã©ã¹ã«æå±ãããã¹ãã§ãããŸããC++ã§ã¯æ°ãã«å°å ¥ãããäŸå€åŠçãçšããŠãšã©ãŒãã³ããªã³ã°ãè¡ãã¹ãã§ãã
5.4 CãšC++ã®å€æããŒã«ãšãªãœãŒã¹
CããC++ãžã®å€æãè£å©ããããŒã«ããªãœãŒã¹ãååšããŸãããããã¯Cã®ã³ãŒããC++ã«å€æããéã®æéãæžãããå¹ççã«ç§»è¡ãé²ããããã®ãã®ã§ãã
C++ãžã®ç§»è¡ãå©ããå ·äœçãªããŒã«ãšããŠã¯ãClangã®ModernizeããŒã«ãC++ Insightsãªã©ããããŸãããããã®ããŒã«ã¯Cã®ã³ãŒããC++ã«å€æãããŸãC++ã®æ°æ©èœãç©æ¥µçã«æŽ»çšããããã®æåŒããæäŸããŸãã
ãªãœãŒã¹ã«ã€ããŠã¯ãåçš®ãªã³ã©ã€ã³ã®ããã¥ã¡ã³ããŒã·ã§ã³ãC++ã®å°éæžç±ããã©ãŒã©ã ãã¹ã¿ãã¯ã»ãªãŒããŒãããŒãªã©ãåèã«ãªããŸãã ãããã掻çšããŠãå¹ççã«CããC++ãžã®ç§»è¡ãé²ããŠãããŸãããã
6. ãŸãšãïŒCãšC++éžã³æ¹ã®ãã€ã³ã
æåŸã«ãæš©è¡¡ã®åºç¹ãšããŠãCãšC++ã®éžæã®ãã€ã³ãã«ã€ããŠãŸãšããŠãããŸããæã ã¯ããããã®èšèªéã§ã®æ±ºå®ã¯ãããããã®ç¹æ§ã䜿çšç°å¢ãç¶æ³ã«ãããŸã¡ãŸã¡ã§ãããšæ³šæããªããã°ãªããŸããã
ãŸããããã¯ä»æ§ãç®æšãã³ãŒãã£ã³ã°èŠç¯ãã¹ãã«ã»ãããªã©ããããžã§ã¯ãã«ãã£ãŠç°ãªãèŠå ã«ãã£ãŠå€§ããå·Šå³ãããŸãã
以äžã«ãCèšèªãšC++ãéžæããéã«èæ ®ãã¹ãããã€ãã®ãã€ã³ããæããŠã¿ãŸãã
6.1 CãšC++ã®ç¹æ§ãç解ããŠéžæ
ãŸãã¯ãCèšèªãšC++èšèªã®ç¹æ§ãšéããç解ããããšãäœãããéèŠã§ããCã¯æç¶ãåããã°ã©ãã³ã°èšèªã§ãäžæ¹ãC++ã¯ãªããžã§ã¯ãæååããã°ã©ãã³ã°èšèªãšããŠèšèšãããŠããŸãã
ã€ãŸãããªããžã§ã¯ãæåã®æŠå¿µãèŠæš¡ãšè€éæ§ã®é«ããããžã§ã¯ãã§æŽ»çšãããå Žåã¯ãC++ãè¯ãéžæãšãªããŸãã
ããããäžæ¹ã§Cã¯åçŽæ§ãšçŽææ§ãåªå ãããªãœãŒã¹ãéãããŠããã·ã¹ãã ã§ã®äœ¿çšã«åããŠããŸãããããã®ç¹æ§ãæ¯èŒãããããžã§ã¯ãã®èŠæ±ãæºãããã®ãéžã¶ããšã倧åã§ãã
6.2 ãããžã§ã¯ãã®èŠä»¶ãšCãšC++ã®ç¹æ§ãç §ããåããã
次ã«ããããžã§ã¯ãã®èŠä»¶ã«ç §ããåãããŠãããããã®èšèªã®ç¹æ§ãè©äŸ¡ããããšãéèŠã§ããããšãã°ãçµã¿èŸŒã¿ã·ã¹ãã ãããŒããŠã§ã¢ã«è¿ãã³ãŒãã®æžãæ¹ãå¿ èŠãªå ŽåãCèšèªãåªããŠããŸãã
äžæ¹ã§ããªããžã§ã¯ãæåã®ã³ãŒããæžãããå Žåããç¶æ¿ãå€æ æ§ãæœè±¡åãšãã£ãæŠå¿µã掻çšãããå ŽåãC++ãé©ããŠããŸãã
å®éã®èŠä»¶ãšããããã®èšèªã®åŒ·ã¿ãæ¯èŒããäºã€ã®ãã¡ã©ã¡ãããããããžã§ã¯ãã«é©åããããæ éã«è©äŸ¡ããããšãæ±ããããŸãã
6.3 ã³ãŒãã®å¯èªæ§ãšä¿å®æ§ãèæ ®
ã³ãŒãã®å¯èªæ§ãšä¿å®æ§ã¯ããœãããŠã§ã¢ã®çåœç·ã§ããC++ã¯ããªããžã§ã¯ãæåã®ç¹æ§äžãå®è£ è ãé©åã«ã¯ã©ã¹ãšãªããžã§ã¯ãã䜿çšãããšãã³ãŒãã¯ãã綺éºã«æŽçãããå¯èªæ§ãåäžããŸãã
äžæ¹ã§ãCèšèªã®ã³ãŒãã¯ã·ã³ãã«ã§çŽæçã§ããããã«ããã察å¿ãããŸã§ã®æéãçããªããä¿å®æ§ãåäžããŸãã
ã©ã¡ãã®èšèªãããŠãŒã¶ãŒãèšèªã®ç¹æ§ãç解ããé©åã«äœ¿çšããããšã§ããã®æ倧ã®å¹æãçºæ®ããŸãã
6.4 ããã©ãŒãã³ã¹ãšå¹çæ§ã®æ¯èŒ
CèšèªãšC++ã¯ãã©ã¡ããéåžžã«é«éã§å¹çã®è¯ãããã©ãŒãã³ã¹ãçºæ®ããŸãã
ããããäžè¬çã«ã¯ãC++ã®æ¹ããªããžã§ã¯ãæåã®ç¹æ§ã掻çšããŠãããããäžéšã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯Cãããããã©ãŒãã³ã¹ãå£ãå ŽåããããŸãã
ããããããã¯å šãŠã®å Žåã«åœãŠã¯ãŸãããã§ã¯ãªããé©åãªèšèšãšå®è£ ã«ãã£ãŠC++ã®ããã©ãŒãã³ã¹ã¯å€§å¹ ã«åäžããå¯èœæ§ãããããšãç解ããŠããã¹ãã§ãã