fbpx
วิกิพีเดีย

ซี++

ภาษาซีพลัสพลัส (อังกฤษ: C++) เป็นภาษาโปรแกรมคอมพิวเตอร์อเนกประสงค์ มีโครงสร้างภาษาที่มีการจัดชนิดข้อมูลแบบสแตติก (statically typed) และสนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่ การโปรแกรมเชิงกระบวนคำสั่ง, การนิยามข้อมูล, การโปรแกรมเชิงวัตถุ, และการโปรแกรมแบบเจเนริก (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์ที่นิยมมากภาษาหนึ่งนับตั้งแต่ช่วงทศวรรษ 1990

ซีพลัสพลัส
นามสกุลของไฟล์.C, .cc, .cpp, .cxx, .c++, .h, .hh, .hpp, .hxx, .h++
กระบวนทัศน์หลายกระบวนทัศน์: เชิงกระบวนการ, เชิงฟังก์ชัน, เชิงวัตถุ, เจเนริก
เริ่มเมื่อค.ศ.1985; 36 ปีที่แล้ว (1985)
ออกแบบโดยเบียเนอ สเดราสดร็อบ
รุ่นเสถียรISO/IEC 14882:2017 (1 ธันวาคม 2017; 3 ปีก่อน (2017-12-01))
ระบบชนิดตัวแปรStatic, nominative, partially inferred
ตัวแปลภาษาหลักแคลง, ชุดแปลโปรแกรมของกนู, ไมโครซอฟท์วิชวลซีพลัสพลัส, ซีพลัสพลัสบิลเดอร์, อินเทลคอมไพเลอร์ซีพลัสพลัส, ไอบีเอ็มเอกซ์แอลซีพลัสพลัส, เอดิสันดีไซน์กรุ๊ป
ได้รับอิทธิพลจากเอดา, อัลกอล68, ซี, ซีแอลยู, เอ็มแอล, ซิมูลา
ส่งอิทธิพลต่อเอดา95, ซีชาร์ป, ซี99, ชาเปล,โคลเชอร์, ดี, จาวา, ลูอา, นิม,[ต้องการอ้างอิง] เพิร์ล, พีเอชพี, ไพทอน, รัสต์, ซี้ด7
เว็บไซต์isocpp.org
ภาษาซีพลัสพลัส ที่วิกิตำรา

เบียเนอ สเดราสดร็อบ (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 <windows.h> LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); const wchar_t CLASS_NAME[] = L"Window"; int WINAPI WinMain(HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow) { WNDCLASSW wc = {0}; wc.hbrBackground = (HBRUSH)COLOR_WINDOW; wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hInstance = hThisInstance; wc.lpszClassName = CLASS_NAME; wc.lpfnWndProc = WindowProcedure; if(!RegisterClassW(&wc)) return -1; CreateWindowW(CLASS_NAME,L"RESOURCES",WS_OVERLAPPEDWINDOW | WS_VISIBLE,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,NULL,NULL,NULL,NULL); MSG msg = {0}; while(GetMessage(&msg,NULL,NULL,NULL)){ TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: break; case WM_DESTROY:  PostQuitMessage (0);  break; default:  return DefWindowProcW(hwnd, message, wParam, lParam); } return 0; } 

ความเข้ากันได้

คอมไพเลอร์ภาษาซีพลัสพลัสที่เป็นที่นิยมรองรับมาตรฐาน C++ 1998 เกือบทั้งหมด

กับภาษาซี

ผู้คนมักจะคิดว่าภาษาซีพลัสพลัสเป็นซูเปอร์เซตของภาษาซี แต่นี่ไม่เป็นความจริงไปทั้งหมด โค้ดภาษาซีส่วนใหญ่สามารถนำมาคอมไพล์ได้อย่างไม่มีปัญหาโดยคอมไพเลอร์ของภาษาซีพลัสพลัส แต่ก็มีโค้ดภาษาซีบางอย่างที่ในภาษาซีพลัสพลัสถือว่าผิดหรือไม่ได้ทำงานตามที่เคยเป็น ตัวอย่างเช่น ภาษาซีรองรับการแปลงชนิดข้อมูลจาก void* ไปเป็นพอยน์เตอร์ชนิดอื่นแบบโดยปริยาย ในขณะที่ภาษาซีพลัสพลัสไม่รองรับ (เพื่อไม่ให้เกิดการแปลงชนิดข้อมูลโดยไม่ได้ตั้งใจ) นอกจากนี้ ภาษาซีพลัสพลัสยังเพิ่มคำสงวนขึ้นมามากมาย เช่น new และ class ซึ่งคำเหล่านี้อาจถูกใช้เป็นชื่อตัวระบุ (เช่นชื่อตัวแปร) ในภาษาซี ส่งผลให้โค้ดภาษาซีดังกล่าวไม่สามารถคอมไพล์ได้

มาตรฐาน C99 ของภาษาซี ได้แก้ไขความไม่เข้ากันระหว่างภาษาซีและภาษาซีพลัสพลัสบางประการ โดยเพิ่มการคอมเมนต์บรรทัด (//) และทำให้สามารถผสมการประกาศตัวแปรเข้าไปในโค้ดได้ (ก่อนหน้านี้ตัวแปรทั้งหมดต้องประกาศ ณ จุดเริ่มต้นของฟังก์ชัน กล่าวคือ ก่อนหน้าที่จะมีการทำงานใด ๆ ในฟังก์ชัน)

อ้างอิง

  1. Stroustrup, Bjarne (1997). "1". The C++ Programming Language (Third ed.). ISBN 0-201-88954-4. OCLC 59193992.
  2. 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.
  3. "Chapel spec (Acknowledgements)" (PDF). Cray Inc. 1 October 2015. สืบค้นเมื่อ 14 January 2016.
  4. . คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2017-01-11. สืบค้นเมื่อ 2017-01-11. Unknown parameter |dead-url= ignored (help)
  5. Harry. H. Chaudhary (28 July 2014). "Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans". สืบค้นเมื่อ 29 May 2016.
  6. "9. Classes — Python 3.6.4 documentation". docs.python.org. สืบค้นเมื่อ 2018-01-09.
  7. Sutter, Herb (15 April 2003). "C++ Conformance Roundup". Dr. Dobb's Journal. สืบค้นเมื่อ 30 May 2006.
  8. "Bjarne Stroustrup's FAQ – Is C a subset of C++?". สืบค้นเมื่อ 5 May 2014.
  9. "C9X – The New C Standard". สืบค้นเมื่อ 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.

งก, ามภาษา, ในบทความน, ไว, ให, านและผ, วมแก, ไขบทความศ, กษาเพ, มเต, มโดยสะดวก, เน, องจากว, เด, ยภาษาไทยย, งไม, บทความด, งกล, าว, กระน, ควรร, บสร, างเป, นบทความโดยเร, วท, ดเน, อหาในบทความน, าสม, โปรดปร, บปร, งข, อม, ลให, เป, นไปตามเหต, การณ, จจ, นหร, อล, าส, หน. lingkkhamphasa inbthkhwamni miiwihphuxanaelaphurwmaekikhbthkhwamsuksaephimetimodysadwk enuxngcakwikiphiediyphasaithyyngimmibthkhwamdngklaw krann khwrribsrangepnbthkhwamodyerwthisudenuxhainbthkhwamnilasmy oprdprbprungkhxmulihepniptamehtukarnpccubnhruxlasud duhnaxphiprayprakxbbthkhwamnixackhyaykhwamidodykaraeplbthkhwamthitrngkninphasaxngkvs khlikthi khyay ephuxsuksaaenwthangkaraeplkhunsamarthdukaraepldwykhxmphiwetxrcakbthkhwaminphasaxngkvs ekhruxngmuxchwyaeplxyang diphaexl hrux kuekilthranselth epncuderimtnthidisahrbkaraepl xyangirktam phuaeplcatxngtrwcsxbkhxphidphladcakkaraepldwykhxmphiwetxraelayunynwakaraeplnnthuktxng erakhxptiesthenuxhathikhdlxkcakekhruxngmuxaeplthiimmikartrwcthankxnephyaephr krunaxyaaeplswnkhxngkhxkhwamthiduaelwechuxthuximidhruxmikhunphaphta thaepnipid oprdchwyyunyndwykartrwcsxbaehlngxangxingthipraktinbthkhwamphasann oprdrabuiwinkhwamyxkaraekikhwakhunaeplenuxhamacakphasaid khunkhwrephimaemaebb Translated en C iwinhnaphudkhuy sahrbkhaaenanaaelaaenwthangephimetim oprdsuksaidthi wikiphiediy karaeplphasasiphlsphls xngkvs C epnphasaopraekrmkhxmphiwetxrxenkprasngkh miokhrngsrangphasathimikarcdchnidkhxmulaebbsaettik statically typed aelasnbsnunrupaebbkarekhiynopraekrmthihlakhlay multi paradigm language idaek karopraekrmechingkrabwnkhasng karniyamkhxmul karopraekrmechingwtthu aelakaropraekrmaebbecenrik generic programming phasasiphlsphlsepnphasaopraekrmechingphanichythiniymmakphasahnungnbtngaetchwngthswrrs 1990siphlsphlsnamskulkhxngifl C cc cpp cxx c h hh hpp hxx h krabwnthsnhlaykrabwnthsn echingkrabwnkar echingfngkchn echingwtthu ecenrik 1 erimemuxkh s 1985 36 pithiaelw 1985 xxkaebbodyebiyenx sedrasdrxbrunesthiyrISO IEC 14882 2017 1 thnwakhm 2017 3 pikxn 2017 12 01 rabbchnidtwaeprStatic nominative partially inferredtwaeplphasahlkaekhlng chudaeplopraekrmkhxngknu imokhrsxfthwichwlsiphlsphls siphlsphlsbiledxr xinethlkhxmiphelxrsiphlsphls ixbiexmexksaexlsiphlsphls exdisndiisnkrupidrbxiththiphlcakexda xlkxl68 si siaexlyu exmaexl simulasngxiththiphltxexda95 sicharp 2 si99 chaepl 3 okhlechxr 4 di cawa 5 luxa nim txngkarxangxing ephirl phiexchphi iphthxn 6 rst sid7ewbistisocpp wbr orgphasasiphlsphls thiwikitaraebiyenx sedrasdrxb Bjarne Stroustrup cakebllaelbs Bell Labs epnphuphthnaphasasiphlsphls edimichchux C with classes inpi kh s 1983 ephuxphthnaphasasidngedim singthiphthnakhunephimetimnnerimcakkarephimetimkarsrangkhlascaknnkephimkhunsmbtitang tamma idaek ewxrchwlfngkchn karoxewxrohldoxepxeretxr karsubthxdhlaysay ethmephlt aelakarcdkarexkesphchn matrthankhxngphasasiphlsphlsidrbkarrbrxnginpi kh s 1998 epnmatrthan ISO IEC 14882 1998 ewxrchnlasudkhuxewxrchninpi kh s 2014 sungepnmatrthan ISO IEC 14882 2014 ruckkninchux C 14 enuxha 1 rupaebbkhxngkarxxkaebbphasasiphlsphls 2 twxyangokhd 3 khwamekhaknid 3 1 kbphasasi 4 xangxingrupaebbkhxngkarxxkaebbphasasiphlsphls aekikhphasasiphlsphlsidthukxxkaebbmaephuxepnphasasahrbkarekhiynopraekrmthwip samarthrxngrbkarekhiynopraekrminradbphasaekhruxngid echnediywkbphasasi inthangthvsdi phasasiphlsphlskhwrcamikhwamerwethiybethaphasasi aetinkarekhiynopraekrmcringnn phasasiphlsphlsepnphasathimikarepidkwangihopraekrmemxreluxkrupaebbkarekhiynopraekrm sungthaihmiaenwonmthiopraekrmemxrxacichrupaebbthiimehmaasm thaihopraekrmthiekhiynmiprasiththiphaphtakwathikhwrcaepn aelaphasasiphlsphlsnnepnphasathimikhwamsbsxnmakkwaphasasi cungthaihmioxkasekidbkkhnakhxmiphlmakkwa phasasiphlsphlsidrbkarxxkaebbephuxekhaknidkbphasasiinekuxbthukkrni duephimetimthi Compatibility of C and C matrthankhxngphasasiphlsphls thukxxkaebbmaephuximihmikarecaacngaephltfxrmkhxmphiwetxr phasasiphlsphlsthukxxkaebbmaihrxngrbrupaebbkarekhiynopraekrmthihlakhlay multi paradigm twxyangokhd aekikh include lt windows h gt LRESULT CALLBACK WindowProcedure HWND UINT WPARAM LPARAM const wchar t CLASS NAME L Window int WINAPI WinMain HINSTANCE hThisInstance HINSTANCE hPrevInstance LPSTR lpszArgument int nCmdShow WNDCLASSW wc 0 wc hbrBackground HBRUSH COLOR WINDOW wc hCursor LoadCursor NULL IDC ARROW wc hInstance hThisInstance wc lpszClassName CLASS NAME wc lpfnWndProc WindowProcedure if RegisterClassW amp wc return 1 CreateWindowW CLASS NAME L RESOURCES WS OVERLAPPEDWINDOW WS VISIBLE CW USEDEFAULT CW USEDEFAULT CW USEDEFAULT CW USEDEFAULT NULL NULL NULL NULL MSG msg 0 while GetMessage amp msg NULL NULL NULL TranslateMessage amp msg DispatchMessage amp msg return 0 LRESULT CALLBACK WindowProcedure HWND hwnd UINT message WPARAM wParam LPARAM lParam switch message case WM CREATE break case WM DESTROY PostQuitMessage 0 break default return DefWindowProcW hwnd message wParam lParam return 0 khwamekhaknid aekikhkhxmiphelxrphasasiphlsphlsthiepnthiniymrxngrbmatrthan C 1998 ekuxbthnghmd 7 kbphasasi aekikh phukhnmkcakhidwaphasasiphlsphlsepnsuepxrestkhxngphasasi aetniimepnkhwamcringipthnghmd 8 okhdphasasiswnihysamarthnamakhxmiphlidxyangimmipyhaodykhxmiphelxrkhxngphasasiphlsphls aetkmiokhdphasasibangxyangthiinphasasiphlsphlsthuxwaphidhruximidthangantamthiekhyepn twxyangechn phasasirxngrbkaraeplngchnidkhxmulcak void ipepnphxynetxrchnidxunaebbodypriyay inkhnathiphasasiphlsphlsimrxngrb ephuximihekidkaraeplngchnidkhxmulodyimidtngic nxkcakni phasasiphlsphlsyngephimkhasngwnkhunmamakmay echn new aela class sungkhaehlanixacthukichepnchuxtwrabu echnchuxtwaepr inphasasi sngphlihokhdphasasidngklawimsamarthkhxmiphlidmatrthan C99 khxngphasasi idaekikhkhwamimekhaknrahwangphasasiaelaphasasiphlsphlsbangprakar odyephimkarkhxmemntbrrthd aelathaihsamarthphsmkarprakastwaeprekhaipinokhdid kxnhnanitwaeprthnghmdtxngprakas n cuderimtnkhxngfngkchn klawkhux kxnhnathicamikarthanganid infngkchn 9 xangxing aekikh Stroustrup Bjarne 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 Rich Hickey Q amp A by Michael Fogus khlngkhxmuleka ekbcak aehlngedim emux 2017 01 11 subkhnemux 2017 01 11 Unknown parameter dead url ignored help 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 Dr Dobb s Journal 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 bthkhwamekiywkbkarekhiynopraekrm hrux phasaopraekrmniyngepnokhrng khunsamarthchwywikiphiediyidodyephimkhxmulekhathungcak https th wikipedia org w index php title si 2B 2B amp oldid 8943300, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม