1. C++ã®æŠèŠ
C++ã¯ã1979幎ã«Bjarne Stroustrupã«ãã£ãŠéçºãããããã°ã©ãã³ã°èšèªã§ããããã®ååã¯Cèšèªã®ã次ã®ã¹ãããããšããæå³ãæã£ãŠããŸãããã®èšèªã¯ãCèšèªã®åŒ·åãªæ©èœãç¶æ¿ãã€ã€ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®æŠå¿µãå°å ¥ããããšã§ãããæè»ã§å¹ççãªã³ãŒãã®äœæãå¯èœã«ããŸããã
1.1. C++ã®èµ·æºãšèæ¯
C++ã¯ãCèšèªã®äžã«æ§ç¯ããããªããžã§ã¯ãæåã®ç¹æ§ãæã€ããšãç®çãšããŠéçºãããŸãããBjarne Stroustrupã¯ãCèšèªã®å¹çãšäœã¬ãã«ã®ã¢ã¯ã»ã¹èœåãä¿æãã€ã€ã倧èŠæš¡ãªãããžã§ã¯ãã§ã®ã³ãŒãã®ç®¡çãšåå©çšã容æã«ããããã®æ°ããæ©èœãè¿œå ããŸãããããã«ãããC++ã¯è¿ éã«ç£æ¥çã§ã®äººæ°ãéããå€ãã®ã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã ã®éçºã«äœ¿çšãããããã«ãªããŸããã
1.2. C++ã®äž»ãªçšé
C++ã¯ãã®æ§èœãšæè»æ§ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã²ãŒã éçºã3Dã¢ãã¡ãŒã·ã§ã³ããŠã§ããã©ãŠã¶ãªã©ãããŸããŸãªé åã§ã®ããã°ã©ã ãåé¡è§£æ±ºã®ããã«äœ¿çšãããŠããŸããç¹ã«ããªã¢ã«ã¿ã€ã ã®ã¢ããªã±ãŒã·ã§ã³ãããã©ãŒãã³ã¹ãèŠæ±ãããå Žé¢ã§ã®å©çšãå€ãã§ãã
1.3. C++ã®ç¹åŸŽ
C++ã¯ããªããžã§ã¯ãæåãæç¶ãåãããã³ãžã§ããªãã¯ããã°ã©ãã³ã°ã®ç¹æ§ãæã€å€ç®çã®èšèªã§ããããã«ãããéçºè ã¯ç¶æ³ã«å¿ããŠæé©ãªããã°ã©ãã³ã°ã¹ã¿ã€ã«ãéžæããããšãã§ããŸãããŸããC++ã¯çŽæ¥ããŒããŠã§ã¢ã«ã¢ã¯ã»ã¹ããèœåãæã¡ãã¡ã¢ãªç®¡çã®æè»æ§ãæäŸããããšã§ãé«åºŠãªæé©åãšå¹ççãªã³ãŒãã®å®è¡ãå®çŸããŠããŸãã
2. C++ã®åºæ¬æ§é
C++ã¯ããã®åŒ·åãªæ©èœãšæè»æ§ããå€ãã®éçºè ã«æ¯æãããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãC++ã®åºæ¬çãªããã°ã©ã ã®æ§é ããå€æ°ãããŒã¿åãæŒç®åã«ã€ããŠè©³ãã解説ããŸãã
2.1. ããã°ã©ã ã®æ§é
C++ã®ããã°ã©ã ã¯ãããããŒãã¡ã€ã«ãšãœãŒã¹ãã¡ã€ã«ããæãç«ã£ãŠããŸããããããŒãã¡ã€ã«ã«ã¯ãé¢æ°ã®ãããã¿ã€ããå€æ°ã®å®£èšãå«ãŸãããœãŒã¹ãã¡ã€ã«ã«ã¯å®éã®ããã°ã©ã ã®ã³ãŒããæžãããŸãããŸããC++ã®ããã°ã©ã ã¯mainé¢æ°ããå®è¡ãéå§ããããã®é¢æ°ã¯ããã°ã©ã ã®ãšã³ããªãŒãã€ã³ããšãªããŸãã
2.2. å€æ°ãšããŒã¿å
C++ã«ã¯ãããŸããŸãªããŒã¿åãçšæãããŠãããããã«ããæŽæ°ãæµ®åå°æ°ç¹æ°ãæåãçåœå€ãªã©ã®ããŒã¿ãæ±ãããšãã§ããŸããå€æ°ã¯ãããŒã¿ãäžæçã«ä¿åããããã®ãã®ã§ãå€æ°åãšããŒã¿åãæå®ããŠå®£èšããŸããäŸãã°ãæŽæ°ãä¿åããå€æ°ã¯ãintããæåãä¿åããå€æ°ã¯ãcharããšããããŒã¿åã䜿çšããŸãã
2.3. åºæ¬çãªæŒç®åãšãã®äœ¿çšäŸ
C++ã«ã¯ãæ°åŠçãªèšç®ãæ¡ä»¶å€å®ããããæäœãªã©ãè¡ãããã®å€ãã®æŒç®åãçšæãããŠããŸãããããã®æŒç®åã«ã¯ãå ç®ãæžç®ãä¹ç®ãé€ç®ãªã©ã®ç®è¡æŒç®åããæ¯èŒæŒç®åãè«çæŒç®åãªã©ããããŸããäŸãã°ãå ç®ãè¡ãå Žåã¯ã+ããæ¡ä»¶ã®ANDãå€å®ããå Žåã¯ã&&ããšããæŒç®åã䜿çšããŸãã
3. C++ã§ã®ããã°ã©ãã³ã°ã®åºæ¬
C++ã¯ããã®é«ãæè»æ§ãšãã¯ãã«ãªæ©èœã«ãããå€å²ã«ãããããã°ã©ãã³ã°ã¿ã¹ã¯ãå®çŸããããšãã§ããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãC++ã§ã®ããã°ã©ãã³ã°ã®åºæ¬çãªèŠç¹ãå¶åŸ¡æ§é ãé¢æ°ãããã³ãªããžã§ã¯ãæåã®æŠå¿µã«ã€ããŠè©³ãã解説ããŸãã
3.1. å¶åŸ¡æ§é ïŒæ¡ä»¶åå²ãšã«ãŒã
ããã°ã©ã ã®æµããå¶åŸ¡ããããã«ãC++ã§ã¯æ¡ä»¶åå²ãšã«ãŒããšããå¶åŸ¡æ§é ãæäŸãããŠããŸããæ¡ä»¶åå²ã«ã¯ãifããelseããswitchããªã©ã®æããããç¹å®ã®æ¡ä»¶ãæºããããå Žåã«ç¹å®ã®ã³ãŒããããã¯ãå®è¡ããŸããäžæ¹ãã«ãŒãã«ã¯ãforããwhileããdo-whileããªã©ã®æããããç¹å®ã®æ¡ä»¶ãæºããããŠããéãç¹°ãè¿ãã³ãŒããå®è¡ããŸãã
3.2. é¢æ°ãšæç¶ã
é¢æ°ã¯ãç¹å®ã®ã¿ã¹ã¯ãå®è¡ããããã®ã³ãŒãã®ãŸãšãŸãã§ãããå ¥åãåãåããåºåãè¿ãããšãã§ããŸããC++ã§ã¯ãé¢æ°ãå®çŸ©ããéã«ã¯æ»ãå€ã®åãé¢æ°åãããã³åŒæ°ãæå®ããŸããé¢æ°ã¯ã³ãŒãã®åå©çšãä¿é²ããããã°ã©ã ã®æ§é ãæŽçããã®ã«åœ¹ç«ã¡ãŸãã
3.3. ã¯ã©ã¹ãšãªããžã§ã¯ãæå
C++ã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®æŠå¿µããµããŒãããŠããŸããããã«ãããããŒã¿ãšãã®ããŒã¿ãæäœããããã®é¢æ°ãäžã€ã®åäœãããªãã¡ã¯ã©ã¹ãšããŠãŸãšããããšãã§ããŸããã¯ã©ã¹ã¯ãªããžã§ã¯ãã®èšèšå³ã®ãããªãã®ã§ããããªããžã§ã¯ãã¯ã¯ã©ã¹ã«åºã¥ããŠäœæãããå®äœã§ãããªããžã§ã¯ãæåã®æŠå¿µã¯ãããã°ã©ã ã®ã¢ãžã¥ãŒã«æ§ãåå©çšæ§ãããã³æ¡åŒµæ§ãåäžãããã®ã«åœ¹ç«ã¡ãŸãã
4. C++ã®å®çšäŸ
C++ã¯ãã®é«æ§èœãšæè»æ§ãããå€å²ã«ãããã¢ããªã±ãŒã·ã§ã³ã®éçºã«äœ¿çšãããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãC++ãã©ã®ããã«ããŠããŸããŸãªåéã§ã®éçºã«åœ¹ç«ã£ãŠããã®ããå ·äœçãªå®çšäŸãéããŠè§£èª¬ããŸãã
4.1. ã²ãŒã éçº
C++ã¯ãã²ãŒã éçºã®åéã§éåžžã«äººæ°ããããŸãããã®çç±ã¯ãC++ãæäŸããé«ãããã©ãŒãã³ã¹ãšçŽæ¥çãªããŒããŠã§ã¢ã¢ã¯ã»ã¹èœåã«ãããŸããããã«ããããªã¢ã«ã¿ã€ã ã®ã¬ã³ããªã³ã°ãç©çã·ãã¥ã¬ãŒã·ã§ã³ãªã©ãã²ãŒã éçºã«ãããèŠæ±ã®é«ãã¿ã¹ã¯ãå¹ççã«å®è¡ããããšãã§ããŸããå€ãã®æåãªã²ãŒã ãšã³ãžã³ãäŸãã°Unreal EngineãUnity3DããC++ãæ žãšããŠäœ¿çšããŠããŸãã
4.2. ãŠã§ããã©ãŠã¶ã®éçº
å€ãã®ã¢ãã³ãªãŠã§ããã©ãŠã¶ãããã®ã³ã¢éšåãC++ã§éçºããŠããŸããC++ã®é«éãªå®è¡é床ãšå¹ççãªã¡ã¢ãªç®¡çã®ãããã§ããã©ãŠã¶ã¯è€éãªãŠã§ãããŒãžãã¢ããªã±ãŒã·ã§ã³ãè¿ éã«ã¬ã³ããªã³ã°ããããšãã§ããŸããäŸãšããŠãGoogle Chromeã®ã¬ã³ããªã³ã°ãšã³ãžã³BlinkãMozilla Firefoxã®Geckoãªã©ãC++ã§æžãããŠããŸãã
4.3. ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éçº
C++ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éçºã«ãåºã䜿çšãããŠããŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãããŒããŠã§ã¢ãªãœãŒã¹ãå¹ççã«ç®¡çããã¢ããªã±ãŒã·ã§ã³ãšããŒããŠã§ã¢ã®éã®ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸãã圹å²ãæã£ãŠããŸããC++ã®äœã¬ãã«ã®ã¢ã¯ã»ã¹èœåãšé«ãããã©ãŒãã³ã¹ã¯ããã®ãããªã¿ã¹ã¯ãå®çŸããã®ã«é©ããŠããŸããäŸãã°ãMicrosoftã®Windows OSã®å€ãã®éšåã¯C++ã§éçºãããŠããŸãã
5. C++ã®å¿çš
C++ã¯ããã®é«åºŠãªæ©èœãšæ¡åŒµæ§ã«ãããå€ãã®å¿çšåéã§äœ¿çšãããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãC++ã®å¿çšã«ãããã¡ã¢ãªç®¡çãã©ã€ãã©ãªãšã®é£æºãããã³ããã©ãŒãã³ã¹æé©åã«ã€ããŠè©³ãã解説ããŸãã
5.1. ã¡ã¢ãªç®¡ç
C++ã§ã¯ãã¡ã¢ãªç®¡çã¯éåžžã«éèŠãªåœ¹å²ãæãããŠããŸããC++ã®ããã°ã©ãã¯ãåçã«ã¡ã¢ãªã確ä¿ã»è§£æŸããããšãã§ããããã«ããå¹ççãªããã°ã©ã ã®å®è¡ãå¯èœãšãªããŸãããããããã®èªç±åºŠãé«ãã¡ã¢ãªç®¡çã¯ãã¡ã¢ãªãªãŒã¯ããã³ã°ãªã³ã°ãã€ã³ã¿ãªã©ã®åé¡ãåŒãèµ·ããå¯èœæ§ãããããã泚ææ·±ãåãæ±ãå¿ èŠããããŸãã
5.2. ã©ã€ãã©ãªãšã®é£æº
C++ã¯ãå€ãã®ã©ã€ãã©ãªãšã®é£æºãå¯èœã§ããããã«ãããã°ã©ãã£ãã¯ã¹ããããã¯ãŒã¯ãããŒã¿ããŒã¹ãªã©ã®æ©èœãç°¡åã«è¿œå ããããšãã§ããŸããSTL(Standard Template Library)ã¯ãC++ã®æšæºã©ã€ãã©ãªã®äžéšã§ãããããŒã¿æ§é ãã¢ã«ãŽãªãºã ãæäŸããŠããŸãããŸããBoostãQtãªã©ã®å€éšã©ã€ãã©ãªããC++ã®éçºã匷åããããã«åºã䜿çšãããŠããŸãã
5.3. ããã©ãŒãã³ã¹æé©å
C++ã®ã³ãŒãã¯ãé©åã«æé©åãããããšã§ãéåžžã«é«éã«å®è¡ããããšãã§ããŸãããã®æé©åã«ã¯ãã³ã³ãã€ã©ã®æé©åãªãã·ã§ã³ã®å©çšããã¢ã«ãŽãªãºã ã®éžæãã€ã³ã©ã€ã³é¢æ°ã®äœ¿çšãªã©ãå«ãŸããŸãããŸãããããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãã³ãŒãã®ããã«ããã¯ãç¹å®ãããããæé©åããããšã§ããããªãããã©ãŒãã³ã¹ã®åäžãå³ãããšãã§ããŸãã
6. C++ã®åŠç¿ãªãœãŒã¹
C++ãåŠã¶ããã®è³æããªãœãŒã¹ã¯è±å¯ã«ååšããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãC++ã®åŠç¿ã«åœ¹ç«ã€æžç±ããŠã§ããµã€ãããããžã§ã¯ãã®ã¢ã€ãã£ã¢ããããŠãµããŒããæäŸããã³ãã¥ããã£ã«ã€ããŠè©³ãã玹ä»ããŸãã
6.1. ããããã®æžç±ãšãŠã§ããµã€ã
å€ãã®æžç±ãC++ã®åŠç¿ã«åœ¹ç«ã€å 容ãæäŸããŠããŸããäŸãã°ããEffective C++ãããC++ Primerããªã©ã¯ãåå¿è ããäžçŽè ãŸã§å¹ åºãèªè ã«æšå¥šãããæžç±ã§ãããŸããcplusplus.comãcppreference.comãªã©ã®ãŠã§ããµã€ãã¯ãC++ã®ãªãã¡ã¬ã³ã¹ããã¥ãŒããªã¢ã«ãæäŸããŠãããåŠç¿ã®éã®åŒ·åãªãµããŒããšãªããŸãã
6.2. å®è·µçãªãããžã§ã¯ãã®ã¢ã€ãã£ã¢
C++ã®ç¥èãæ·±ããããã«ã¯ãå®è·µçãªãããžã§ã¯ãã«åãçµãããšãå¹æçã§ããäŸãã°ãã·ã³ãã«ãªã²ãŒã ã®éçºããŠã§ããµãŒããŒã®æ§ç¯ããŸãã¯ç»ååŠçããŒã«ã®äœæãªã©ãèå³ãæã£ãããŒãã§ã®ãããžã§ã¯ããå§ããããšãããããããŸããããã«ãããçè«ã ãã§ãªããå®éã®ããã°ã©ãã³ã°ã¹ãã«ãåäžãããããšãã§ããŸãã
6.3. ã³ãã¥ããã£ãšãµããŒã
C++ã®åŠç¿è ãéçºè ã®ããã®ã³ãã¥ããã£ã¯ã質åãæ å ±äº€æã®å ŽãšããŠéåžžã«äŸ¡å€ããããŸããäŸãã°ãStack Overflowã§ã¯ãC++ã«é¢ãã質åã掻çºã«è¡ãããŠãããçµéšè±å¯ãªéçºè ããã®åçãåŸãããšãã§ããŸãããŸããGitHubãRedditã®C++é¢é£ã®ã³ãã¥ããã£ããæ å ±å ±æãåé¡è§£æ±ºã®ããã®æçãªãªãœãŒã¹ãšãªã£ãŠããŸãã
7. ãŸãšã
ãã®èšäºãéããŠãC++ã®åºæ¬ããå¿çšãŸã§ã®å€å²ã«ããããããã¯ãåŠã³ãŸãããæåŸã«ãC++ã®åŒ·ã¿ãšåŒ±ã¿ãä»åŸã®å±æããããŠç¶ç¶çãªåŠç¿ã®éèŠæ§ã«ã€ããŠãŸãšããŸãã
7.1. C++ã®åŒ·ã¿ãšåŒ±ã¿
C++ã®åŒ·ã¿ãšããŠã¯ãé«ãããã©ãŒãã³ã¹ãã¡ã¢ãªç®¡çã®æè»æ§ããããŠè±å¯ãªã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãæããããŸããããã«ãããã²ãŒã éçºããã·ã¹ãã ããã°ã©ãã³ã°ãŸã§ãå¹ åºãåéã§ã®å©çšãå¯èœã§ããäžæ¹ã匱ã¿ãšããŠã¯ãåŠç¿æ²ç·ãããæ¥ã§ããããšããã¡ã¢ãªç®¡çã«é¢ããåé¡ãçºçããããããšãèããããŸãã
7.2. ä»åŸã®C++ã®å±æ
C++ã¯ããã®æŽå²ãšå ±ã«å€ãã®é²åãéããŠããŸãããä»åŸãC++20ãC++23ãªã©ã®æ°ããæšæºãå°å ¥ãããããšã§ããã䟿å©ã§å¹ççãªããã°ã©ãã³ã°ãæåŸ ãããŸãããŸããã¯ãã¹ãã©ãããã©ãŒã ã®éçºããæ°ããæè¡é åãžã®é©å¿ãé²ãããšã§ãC++ã®å©çšç¯å²ã¯ããã«åºããã§ãããã
7.3. ç¶ç¶çãªåŠç¿ã®éèŠæ§
æè¡ã®é²åã¯æ¥é²ææ©ã§ãããC++ãäŸå€ã§ã¯ãããŸãããæ°ããæšæºãã©ã€ãã©ãªãç»å Žãããã³ã«ãç¶ç¶çãªåŠç¿ãå¿ èŠãšãªããŸãããã®ãããªå€åã«æè»ã«å¯Ÿå¿ããããã«ã¯ãæ¥åžžçãªå®è·µãã³ãã¥ããã£ãšã®äº€æµãéããŠãåžžã«ææ°ã®æ å ±ãååŸããã¹ãã«ã磚ãç¶ããããšãéèŠã§ãã
åèæç®
- Learn C++ from scratch: The complete guide for beginners – Educative
C++ã®åŠç¿ã«ãããæéãäž»ãªçšéãä»ã®ããã°ã©ãã³ã°èšèªãšã®éããªã©ãC++ã«é¢ããåºæ¬çãªæ å ±ãæäŸããèšäºã - Learn C++ â Skill up with our free tutorials – LearnCpp.com
C++ã®ããã°ã©ãã³ã°ãæããããã®ç¡æã®ãŠã§ããµã€ããC++ããã°ã©ã ã®äœæãã³ã³ãã€ã«ããããã°ã®ãã¹ãŠã®ã¹ãããã詳ãã説æããŠããã - Learn C++ | Codecademy
C++ã®é©å¿æ§ãšé«éãªã¬ã³ããªã³ã°ã«é¢ããæ å ±ãæäŸãããµã€ãããŠã§ããã©ãŠã¶ããã²ãŒã éçºããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãç§åŠãæ©æ¢°åŠç¿ããŒã«ãŸã§ã®äœ¿çšäŸã玹ä»ã - C++ Language – C++ Users
C++ã®åºæ¬ããC++11ã«ãã£ãŠå°å ¥ãããææ°ã®æ©èœãŸã§ã説æãããã¥ãŒããªã¢ã«ãå®è·µçãªãªãªãšã³ããŒã·ã§ã³ãæã¡ãããã«ç·Žç¿ãå§ããããšãã§ããã