ลิงก์ข้ามภาษาในบทความนี้ มีไว้ให้ผู้อ่านและผู้ร่วมแก้ไขบทความศึกษาเพิ่มเติมโดยสะดวก เนื่องจากวิกิพีเดียภาษาไทยยังไม่มีบทความดังกล่าว กระนั้น ควรรีบสร้างเป็นบทความโดยเร็วที่สุด |
เนื้อหาในบทความนี้ล้าสมัย โปรดปรับปรุงข้อมูลให้เป็นไปตามเหตุการณ์ปัจจุบันหรือล่าสุด ดูประกอบ |
บทความนี้อาจขยายความได้โดยการแปลบทความที่ตรงกันในภาษาอังกฤษ คลิกที่ [ขยาย] เพื่อศึกษาแนวทางการแปล
|
ภาษาซีพลัสพลัส (อังกฤษ: C++) เป็นภาษาโปรแกรมคอมพิวเตอร์อเนกประสงค์ มีโครงสร้างภาษาที่มี (statically typed) และสนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่ , , การโปรแกรมเชิงวัตถุ, และ (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์ที่นิยมมากภาษาหนึ่งนับตั้งแต่ช่วงทศวรรษ 1990
กระบวนทัศน์ | หลายกระบวนทัศน์: , เชิงฟังก์ชัน, เชิงวัตถุ, |
---|---|
เริ่มเมื่อ | ค.ศ.1985 |
รุ่นเสถียร | ISO/IEC 14882:2017 / 1 ธันวาคม 2017 |
ระบบชนิดตัวแปร | Static, , |
นามสกุลของไฟล์ | .C, .cc, .cpp, .cxx, .c++, .h, .hh, .hpp, .hxx, .h++ |
เว็บไซต์ | isocpp |
, ชุดแปลโปรแกรมของกนู, , , , , | |
ได้รับอิทธิพลจาก | |
เอดา, , ซี, , , ซิมูลา | |
ส่งอิทธิพลต่อ | |
เอดา95, ซีชาร์ป,, ,,, จาวา,ลูอา, ,[]เพิร์ล, พีเอชพี, ไพทอน,รัสต์, | |
|
(Bjarne Stroustrup) จาก (Bell Labs) เป็นผู้พัฒนาภาษาซีพลัสพลัส (เดิมใช้ชื่อ "C with classes") ในปี ค.ศ. 1983 เพื่อพัฒนาภาษาซีดั้งเดิม สิ่งที่พัฒนาขึ้นเพิ่มเติมนั้นเริ่มจากการเพิ่มเติมการสร้างคลาสจากนั้นก็เพิ่มคุณสมบัติต่างๆ ตามมา ได้แก่ และ มาตรฐานของภาษาซีพลัสพลัสได้รับการรับรองในปี ค.ศ. 1998 เป็นมาตรฐาน ISO/IEC 14882:1998 เวอร์ชันล่าสุดคือเวอร์ชันในปี ค.ศ. 2014 ซึ่งเป็นมาตรฐาน ISO/IEC 14882:2014 (รู้จักกันในชื่อ C++14)
รูปแบบของการออกแบบภาษาซีพลัสพลัส
- ภาษาซีพลัสพลัสได้ถูกออกแบบมาเพื่อเป็นภาษาสำหรับการเขียนโปรแกรมทั่วไป สามารถรองรับการเขียนโปรแกรมในระดับภาษาเครื่องได้ เช่นเดียวกับภาษาซี
- ในทางทฤษฎี ภาษาซีพลัสพลัสควรจะมีความเร็วเทียบเท่าภาษาซี แต่ในการเขียนโปรแกรมจริงนั้น ภาษาซีพลัสพลัสเป็นภาษาที่มีการเปิดกว้างให้โปรแกรมเมอร์เลือกรูปแบบการเขียนโปรแกรม ซึ่งทำให้มีแนวโน้มที่โปรแกรมเมอร์อาจใช้รูปแบบที่ไม่เหมาะสม ทำให้โปรแกรมที่เขียนมีประสิทธิภาพต่ำกว่าที่ควรจะเป็น และภาษาซีพลัสพลัสนั้นเป็นภาษาที่มีความซับซ้อนมากกว่าภาษาซี จึงทำให้มีโอกาสเกิดบั๊กขณะคอมไพล์มากกว่า
- ภาษาซีพลัสพลัสได้รับการออกแบบเพื่อเข้ากันได้กับภาษาซีในเกือบทุกกรณี (ดูเพิ่มเติมที่ Compatibility of C and C++)
- มาตรฐานของภาษาซีพลัสพลัส ถูกออกแบบมาเพื่อไม่ให้มีการเจาะจงแพลตฟอร์มคอมพิวเตอร์
- ภาษาซีพลัสพลัสถูกออกแบบมาให้รองรับรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm)
ตัวอย่างโค้ด
#include <iostream> int main() { std::cout << "Hello World"<< endl; return 0; }
ความเข้ากันได้
คอมไพเลอร์ภาษาซีพลัสพลัสที่เป็นที่นิยมรองรับมาตรฐาน C++ 1998 เกือบทั้งหมด
กับภาษาซี
ผู้คนมักจะคิดว่าภาษาซีพลัสพลัสเป็นซูเปอร์เซตของภาษาซี แต่นี่ไม่เป็นความจริงไปทั้งหมด โค้ดภาษาซีส่วนใหญ่สามารถนำมาคอมไพล์ได้อย่างไม่มีปัญหาโดยคอมไพเลอร์ของภาษาซีพลัสพลัส แต่ก็มีโค้ดภาษาซีบางอย่างที่ในภาษาซีพลัสพลัสถือว่าผิดหรือไม่ได้ทำงานตามที่เคยเป็น ตัวอย่างเช่น ภาษาซีรองรับการแปลงชนิดข้อมูลจาก void*
ไปเป็นชนิดอื่นแบบ ในขณะที่ภาษาซีพลัสพลัสไม่รองรับ (เพื่อไม่ให้เกิดการแปลงชนิดข้อมูลโดยไม่ได้ตั้งใจ) นอกจากนี้ ภาษาซีพลัสพลัสยังเพิ่มคำสงวนขึ้นมามากมาย เช่น new
และ class
ซึ่งคำเหล่านี้อาจถูกใช้เป็นชื่อตัวระบุ (เช่นชื่อตัวแปร) ในภาษาซี ส่งผลให้โค้ดภาษาซีดังกล่าวไม่สามารถคอมไพล์ได้
มาตรฐาน ของภาษาซี ได้แก้ไขความไม่เข้ากันระหว่างภาษาซีและภาษาซีพลัสพลัสบางประการ โดยเพิ่มการคอมเมนต์บรรทัด (//
) และทำให้สามารถผสมการประกาศตัวแปรเข้าไปในโค้ดได้ (ก่อนหน้านี้ตัวแปรทั้งหมดต้องประกาศ ณ จุดเริ่มต้นของฟังก์ชัน กล่าวคือ ก่อนหน้าที่จะมีการทำงานใด ๆ ในฟังก์ชัน)
อ้างอิง
- (1997). "1". The C++ Programming Language (Third ed.). ISBN . OCLC 59193992.
- Naugler, David (May 2007). "C# 2.0 for C++ and Java programmer: conference workshop". Journal of Computing Sciences in Colleges. 22 (5).
Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java.
- "Chapel spec (Acknowledgements)" (PDF). Cray Inc. 1 October 2015. สืบค้นเมื่อ 14 January 2016.
- . คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2017-01-11. สืบค้นเมื่อ 2017-01-11.
- Harry. H. Chaudhary (28 July 2014). "Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans". สืบค้นเมื่อ 29 May 2016.
- "9. Classes — Python 3.6.4 documentation". docs.python.org. สืบค้นเมื่อ 2018-01-09.
- Sutter, Herb (15 April 2003). "C++ Conformance Roundup". . สืบค้นเมื่อ 30 May 2006.
- "Bjarne Stroustrup's FAQ – Is C a subset of C++?". สืบค้นเมื่อ 5 May 2014.
- "C9X – The New C Standard". สืบค้นเมื่อ 27 December 2008.
- Josuttis, Nicolai M. The C++ Standard Library. Addison-Wesley. .
- Koenig, Andrew; Barbara E. Moo (2000). Accelerated C++ - Practical Programming by Example. Addison-Wesley. .
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
lingkkhamphasa inbthkhwamni miiwihphuxanaelaphurwmaekikhbthkhwamsuksaephimetimodysadwk enuxngcakwikiphiediyphasaithyyngimmibthkhwamdngklaw krann khwrribsrangepnbthkhwamodyerwthisudenuxhainbthkhwamnilasmy oprdprbprungkhxmulihepniptamehtukarnpccubnhruxlasud duhnaxphiprayprakxbbthkhwamnixackhyaykhwamidodykaraeplbthkhwamthitrngkninphasaxngkvs khlikthi khyay ephuxsuksaaenwthangkaraeplkhunsamarthdu karaepldwykhxmphiwetxrcakbthkhwaminphasaxngkvs ekhruxngmuxchwyaeplxyang diphaexl hrux kuekilthranselth epncuderimtnthidisahrbkaraepl xyangirktam phuaeplcatxngtrwcsxbkhxphidphladcakkaraepldwykhxmphiwetxraelayunynwakaraeplnnthuktxng erakhxptiesthenuxhathikhdlxkcakekhruxngmuxaeplthiimmikartrwcthankxnephyaephr krunaxyaaeplswnkhxngkhxkhwamthiduaelwechuxthuximidhruxmikhunphaphta thaepnipid oprdchwyyunyndwykartrwcsxbaehlngxangxingthipraktinbthkhwamphasann oprdrabuiwinkhwamyxkaraekikhwakhunaeplenuxhamacakphasaid khunkhwrephimaemaebb Translated en C iwinhnaphudkhuy sahrbkhaaenanaaelaaenwthangephimetim oprdsuksaidthi wikiphiediy karaepl phasasiphlsphls xngkvs C epnphasaopraekrmkhxmphiwetxrxenkprasngkh miokhrngsrangphasathimi statically typed aelasnbsnunrupaebbkarekhiynopraekrmthihlakhlay multi paradigm language idaek karopraekrmechingwtthu aela generic programming phasasiphlsphlsepnphasaopraekrmechingphanichythiniymmakphasahnungnbtngaetchwngthswrrs 1990siphlsphlskrabwnthsnhlaykrabwnthsn echingfngkchn echingwtthu erimemuxkh s 1985 39 pithiaelw 1985 runesthiyrISO IEC 14882 2017 1 thnwakhm 2017 6 pikxn 2017 12 01 rabbchnidtwaeprStatic namskulkhxngifl C cc cpp cxx c h hh hpp hxx h ewbistisocpp wbr org chudaeplopraekrmkhxngknu idrbxiththiphlcakexda si simulasngxiththiphltxexda95 sicharp cawa luxa txngkarxangxing ephirl phiexchphi iphthxn rst phasasiphlsphls thiwikitara Bjarne Stroustrup cak Bell Labs epnphuphthnaphasasiphlsphls edimichchux C with classes inpi kh s 1983 ephuxphthnaphasasidngedim singthiphthnakhunephimetimnnerimcakkarephimetimkarsrangkhlascaknnkephimkhunsmbtitang tamma idaek aela matrthankhxngphasasiphlsphlsidrbkarrbrxnginpi kh s 1998 epnmatrthan ISO IEC 14882 1998 ewxrchnlasudkhuxewxrchninpi kh s 2014 sungepnmatrthan ISO IEC 14882 2014 ruckkninchux C 14 rupaebbkhxngkarxxkaebbphasasiphlsphlsphasasiphlsphlsidthukxxkaebbmaephuxepnphasasahrbkarekhiynopraekrmthwip samarthrxngrbkarekhiynopraekrminradbphasaekhruxngid echnediywkbphasasi inthangthvsdi phasasiphlsphlskhwrcamikhwamerwethiybethaphasasi aetinkarekhiynopraekrmcringnn phasasiphlsphlsepnphasathimikarepidkwangihopraekrmemxreluxkrupaebbkarekhiynopraekrm sungthaihmiaenwonmthiopraekrmemxrxacichrupaebbthiimehmaasm thaihopraekrmthiekhiynmiprasiththiphaphtakwathikhwrcaepn aelaphasasiphlsphlsnnepnphasathimikhwamsbsxnmakkwaphasasi cungthaihmioxkasekidbkkhnakhxmiphlmakkwa phasasiphlsphlsidrbkarxxkaebbephuxekhaknidkbphasasiinekuxbthukkrni duephimetimthi Compatibility of C and C matrthankhxngphasasiphlsphls thukxxkaebbmaephuximihmikarecaacngaephltfxrmkhxmphiwetxr phasasiphlsphlsthukxxkaebbmaihrxngrbrupaebbkarekhiynopraekrmthihlakhlay multi paradigm twxyangokhd include lt iostream gt int main std cout lt lt Hello World lt lt endl return 0 khwamekhaknidkhxmiphelxrphasasiphlsphlsthiepnthiniymrxngrbmatrthan C 1998 ekuxbthnghmd kbphasasi phukhnmkcakhidwaphasasiphlsphlsepnsuepxrestkhxngphasasi aetniimepnkhwamcringipthnghmd okhdphasasiswnihysamarthnamakhxmiphlidxyangimmipyhaodykhxmiphelxrkhxngphasasiphlsphls aetkmiokhdphasasibangxyangthiinphasasiphlsphlsthuxwaphidhruximidthangantamthiekhyepn twxyangechn phasasirxngrbkaraeplngchnidkhxmulcak void ipepnchnidxunaebb inkhnathiphasasiphlsphlsimrxngrb ephuximihekidkaraeplngchnidkhxmulodyimidtngic nxkcakni phasasiphlsphlsyngephimkhasngwnkhunmamakmay echn new aela class sungkhaehlanixacthukichepnchuxtwrabu echnchuxtwaepr inphasasi sngphlihokhdphasasidngklawimsamarthkhxmiphlid matrthan khxngphasasi idaekikhkhwamimekhaknrahwangphasasiaelaphasasiphlsphlsbangprakar odyephimkarkhxmemntbrrthd aelathaihsamarthphsmkarprakastwaeprekhaipinokhdid kxnhnanitwaeprthnghmdtxngprakas n cuderimtnkhxngfngkchn klawkhux kxnhnathicamikarthanganid infngkchn xangxing 1997 1 The C Programming Language Third ed ISBN 0 201 88954 4 OCLC 59193992 Naugler David May 2007 C 2 0 for C and Java programmer conference workshop Journal of Computing Sciences in Colleges 22 5 Although C has been strongly influenced by Java it has also been strongly influenced by C and is best viewed as a descendant of both C and Java Chapel spec Acknowledgements PDF Cray Inc 1 October 2015 subkhnemux 14 January 2016 khlngkhxmulekaekbcakaehlngedimemux 2017 01 11 subkhnemux 2017 01 11 Harry H Chaudhary 28 July 2014 Cracking The Java Programming Interview 2000 Java Interview Que Ans subkhnemux 29 May 2016 9 Classes Python 3 6 4 documentation docs python org subkhnemux 2018 01 09 Sutter Herb 15 April 2003 C Conformance Roundup subkhnemux 30 May 2006 Bjarne Stroustrup s FAQ Is C a subset of C subkhnemux 5 May 2014 C9X The New C Standard subkhnemux 27 December 2008 Josuttis Nicolai M The C Standard Library Addison Wesley ISBN 0 201 37926 0 Koenig Andrew Barbara E Moo 2000 Accelerated C Practical Programming by Example Addison Wesley ISBN 0 201 70353 X bthkhwamkarekhiynopraekrm hrux phasaopraekrmniyngepnokhrng khunsamarthchwywikiphiediyidodykarephimetimkhxmuldk