<!-- /* Font Definitions */ @font-face {font-family:"Angsana New"; panose-1:2 2 6 3 5 4 5 2 3 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:16777219 0 0 0 65537 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; mso-bidi-font-size:14.0pt; font-family:Calibri; mso-fareast-font-family:Calibri; mso-bidi-font-family:"Angsana New";} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 72.0pt 72.0pt 72.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
บทที่ 1 ภาษา C และ C++
ก่อนที่เราจะเข้าสู่การเขียนโปรแกรมภาษา C++ กัน เราจะมาทำความเข้าใจกันอย่างละเอียด ๆ กันก่อนถึงคำถามที่ผู้อยากเขียนโปรแกรมภาษา C++ สงสัยกันว่า ระหว่างภาษา C และ C++ นั้นมีความแตกต่างกันอย่างไร และจะศึกษาภาษาใดถึงจะดีที่สุดในปัจจุบัน ผู้ที่จะตอบให้ได้ดีที่สุดนั้นก็คือ ตัวท่านผู้ศึกษาเอง หนังสือและตำราทั้งหลายเป็นเพียงแหล่งข้อมูลเท่านั้น ดังนั้น ในบทแรกนี้ เรามาทำความเข้าใจให้ตรงกันเสียก่อนว่า ทำไมจะต้องเป็น C++ แค่ C ยังไม่พออีกหรือ… ยินดีต้อนรับการก้าวเข้าสู่โลกของ C++ ณ บรรทัดต่อจากนี้
1. วิธีการสร้างฟังก์ชั่น
2. การคืนค่าของฟังก์ชั่น
3. การส่งค่าไปให้ฟังก์ชั่น จากภาษา C สู่ C++
ถ้าจะอธิบายเริ่มจากประวัติของโปรแกรมคอมพิวเตอร์แล้วล่ะก็ อาจจะยาวเกินไป และบางท่านที่หยิบหนังสือเล่มนี้ก็คงจะมีความรู้และชั่วโมงบินในการเขียนโปรแกรมมากันแล้ว จึงจะขอพูดถึงระดับของภาษากันเลย คือ ภาษาคอมพิวเตอร์นั้นแบ่งออกเป็น 2 ระดับใหญ่ ๆ คือ ระดับสูง (High Level Langauge) และระดับต่ำ (Low Level Langauge) แต่ในตำราบางเล่ม อาจจะแบ่งถึง 3 ระดับก็ไม่เป็นไร ภาษาระดับสูงนั้นได้แก่ ภาษา Basic , Pascal , C และภาษาคอมพิวเตอร์ที่ดูแล้วเข้าใจง่ายเพราะใช้คำในภาษาอังกฤษเป็นคำสั่งของภาษา เราเรียนไม่เกินสัปดาห์ก็สามารถเขียนโปรแกรมเล็ก ๆ ได้แล้วครับ แต่สำหรับภาษาระดับต่ำนั้น ได้แก่ ภาษาเครื่อง , แอสแซมบลี้ (Assembly) เป็นต้น ซึ่งเข้าใจได้ยาก เพราะบางคำสั่งเป็นตัวย่อ หรือเป็นเลขฐาน แต่การทำงานของภาษาระดับต่ำนั้นเร็วครับ ติดต่อกับระบบเครื่องหรือระบบฮาร์ดแวร์ได้ดี ภาษา C เป็นภาษาหนึ่งในภาษาระดับสูง และเป็นภาษาแบบโครงสร้างด้วย คือ ไม่จำเป็นต้องมีเลขประจำบรรทัด ถ้าเราย้อนอดีตกลับไปในยุคที่คอมพิวเตอร์ยังไม่มีโปรแกรมระบบปฏิบัติการวินโดวส์ (Windows) กันเลย เรามีระบบปฏิบัติการดอส (DOS) การทำงานทุกอย่างจะอยู่ในดอสหมด อยู่บนบรรทัดคำสั่ง การเขียนโปรแกรมในยุคนั้น ก็จะใช้โปรแกรมภาษาดังต่อไปนี้
ภาษา BASIC โดยมีโปรแกรม GWBASIC, BASICA, QBASIC เป็นตัวแปลภาษา ภาษา Pascal โดยใช้โปรแกรม Turbo Pascal ในการแปลโปรแกรม ภาษา C ใช้โปรแกรม Turbo C ในการแปลโปรแกรม ภาษา Assembly ใช้โปรแกรม TASM , MASM ในการแปลโปรแกรม
นอกจากนี้ภาษาอื่น ๆ ที่ไม่ได้กล่าวถึงก็เช่นกัน การเขียนโปรแกรมจะเขียนบนตัวอิดิตเตอร์ (Editor) ที่มีมาให้กับตัวแปลภาษาเลย เมื่อเขียนโปรแกรมเสร็จแล้วก็จะทำการแปลโปรแกรม หรือที่เรียกว่า Compile เราก็สามารถสร้างโปรแกรมประยุกต์ขึ้นมากันได้แล้ว ซึ่งจะทำงานในเท็กซ์โหมด (Text Mode) และสามารถทำงานในกราฟิกโหมดได้ด้วย (Graphic Mode) ในขณะที่ยุคของระบบปฏิบัติการแบบเท็กซ์ เช่น DOS กำลังจะถูกวินโดวส์เข้ามาแทนที่ การพัฒนาโปรแกรมก็เริ่มเปลี่ยนจากการพัฒนาโปรแกรมบนดอส มาเป็นการเขียนโปรแกรมบนวินโดวส์แทน วินโดสว์ในยุคแรก ๆ ที่เราคุ้นเคยกันก็คือ Windows 3.1 , Windows for Workgroup เป็นต้น ในช่วงก่อนหน้านี้นั่นเอง ที่ได้เกิดแนวคิดที่เรียกว่า OOP ขึ้น OOP ย่อมาจาก Object Oriented Programming ก็คือ แนวคิดในการมองทุก ๆ อย่างให้เป็นวัตถุนั่นเอง แนวคิดนี้ ได้กลายมาเป็นแนวคิดในการทำงานของระบบปฏิบัติการวินโดวส์และระบบปฏิบัติการหลาย ๆ ตัวด้วยกัน และจากแนวคิดนี้เอง ก็ได้เกิดภาษาคอมพิวเตอร์ที่พัฒนาต่อมาจากภาษา C นั่นก็คือ ภาษา C++ ซึ่งใช้โครงสร้างภาษาเหมือนกับภาษา C ทุกอย่าง แต่ได้เพิ่มความรัดกุมมากขึ้นในเรื่องของการใช้คำสั่งและฟังก์ชั่น พร้อมกับได้เพิ่มความสามารถในการประกาศคลาส ซึ่งเป็นตัวแปรในแบบ OOP และหลังจากที่ภาษา C++ และแนวคิดของ OOP เป็นที่ยอมรับ และได้นำไปใช้ในการพัฒนาโปรแกรมต่าง ๆ มากมาย ไม่ว่าจะเป็นตัวระบบปฏิบัติการหรือโปรแกรมประยุกต์ ทั้งบนวินโดวส์และบนระบบปฏิบัติการอื่น ๆ เช่น ลีนุกซ์ (Linux) และก็ยังมีการพัฒนาตัวแปลภาษาให้มีความสามารถสูงขึ้น ๆ ตามความสามารถของระบบปฏิบัติการ เช่น Visual C++ , Visual Studio , Visual Studio .NET เป็นต้น แต่อย่างไรก็ตาม พื้นฐานของภาษา C และการเขียนโปรแกรมแบบ OOP ใน C++ ก็ยังเป็นรากฐานในการพัฒนาภาษาใหม่ ๆ ขึ้นมาอีกหลายภาษา เช่น จาวา (Java) , ซีชาร์ป (C#) เป็นต้น การที่เราจะพัฒนาโปรแกรมภาษา C++ ได้นั้น จะต้องมีโปรแกรมสำหรับแปลภาษาก่อน นั่นก็คือ Turbo C++, Borland C++ , Microsoft C/C++ , Visual C++ ฯลฯ.. โปรแกรมแปลภาษาเหล่านี้ สามารถแปลโปรแกรมได้ทั้งภาษา C และภาษา C++ ซึ่งก็ขึ้นอยู่กับว่าเรากำหนดให้นามสกุลของไฟล์เป็นภาษาอะไร ถ้าเขียนโปรแกรมภาษา C ให้กำหนดนามสกุลของไฟล์โปรแกรมเป็น .C แต่ถ้าเขียนโปรแกรมที่มีการประกาศคลาสหรือใช้ความสามารถของ OOP ด้วยล่ะก็ ให้กำหนดนามสกุลของไฟล์โปรแกรมนั้นให้เป็น .CPP บางท่านอาจจะสงสัยว่า การบันทึกไฟล์โปรแกรมให้เป็น .C กับ .CPP นั้นมีข้อแตกต่างกันตรงไหน เพื่อให้เข้าใจมากขึ้น เรามาดูตัวอย่างกันดีกว่า ยกตัวอย่างโปรแกรมภาษา C ชื่อ TESTC.C ดังนี้
#include <stdio.h>
int a,b,c;
plus() { printf("ans=%d\n",c); }
main() { a=10; b=20; c=a+b; plus(); }
โปรแกรม TESTC.C นี้ ถ้าเราแปลโปรแกรมโดยใช้ Visual C++ จะไม่มีปัญหา สามารถทำงานได้ตามปกติ แต่ถ้าเราบันทึกเป็นไฟล์นามสกุล TESTC.CPP ล่ะก็ แล้วแปลโปรแกรมด้วย Visual C++ ใหม่ จะเกิดข้อความเตือนเกี่ยวกับการคืนค่าของฟังก์ชั่น plus( ) ลักษณะนี้ warning C4508: 'plus' : function should return a value; 'void' return type assumed warning C4508: 'main' : function should return a value; 'void' return type assumed
ข้อความเตือนในข้างต้น ได้บอกว่า ฟังก์ชั่น plus และ main นั้นจะต้องมีการคืนค่าโดยคำสั่ง return ด้วย ที่เป็นเช่นนี้ก็เพราะว่า ในภาษา C++ นั้น มีข้อกำหนดอย่างหนึ่งก็คือ ถ้าเราเขียนฟังก์ชั่นขึ้นมาลอย ๆ แบบในข้างต้น C++ จะถือว่าฟังก์ชั่นนั้นคืนค่ากลับมาเป็นแบบ int ทันที ดังนั้น ถ้าเราสร้างฟังก์ชั่นแบบที่ไม่มีการคืนค่าใด ๆ กลับมา จะต้องใส่ void นำหน้าด้วยเพื่อเป็นการบอกให้ตัวแปลภาษาทราบว่าเป็นฟังก์ชั่นที่ไม่มีการคืนค่า ดังนั้น โปรแกรมจะต้องเปลี่ยนเป็น TESTC.CPP ดังต่อไปนี้ ข้อความเตือนจากการแปลโปรแกรมก็จะไม่ปรากฏอีก โปรแกรม TESTC.CPP มีดังนี้
#include <stdio.h>
int a,b,c;
void plus() { printf("ans=%d\n",c); }
void main() { a=10; b=20; c=a+b; plus(); }
ตรงจุดนี้คือ ข้อแตกต่างเล็ก ๆ น้อย ๆ ที่เราสามารถสังเกตได้จากการที่เรานำเอาโปรแกรมภาษา C มาแปลโปรแกรมในแบบ C++ ซึ่งจะเห็นได้ว่า การเขียนโปรแกรมภาษา C++ มีความเข้มงวดมากขึ้น เนื่องมาจากในการเขียนโปรแกรมแบบ OOP ในเรื่องของการสร้างฟังก์ชั่นในคลาสจำเป็นจะต้องระบุการคืนค่าของฟังก์ชั่นด้วย ไม่เช่นนั้น โปรแกรมอาจจะไม่สามารถแปลภาษาได้ รายละเอียดส่วนนี้เราจะได้ศึกษาในบทต่อ ๆ ไป
ก่อนเข้าสู่ OOP ต้องรู้จักฟังก์ชั่นก่อน
ความรู้พื้นฐานอย่างหนึ่งที่ท่านจะต้องศึกษาให้เข้าใจมากเป็นพิเศษก็คือการใช้งานฟังก์ชั่นในภาษา C เพราะว่าเมื่อท่านเขียนโปรแกรมในระดับสูงขึ้นไป การเขียนโปรแกรมแบบหลาย ๆ บรรทัดเรียงกันเต็มหน้าจอก็จะไม่ค่อยมีให้เห็นอีกแล้ว โดยมากโค้ดโปรแกรมที่ยาว ๆ จะถูกยุบให้เป็นฟังก์ชั่น ๆ หนึ่ง จากนั้นก็เรียกใช้เอาตามต้องการ ดังนั้น เรื่องของฟังก์ชั่น จึงเป็นเรื่องพื้นฐานเรื่องแรกที่ท่านจะต้องทำความเข้าใจให้ดี ก่อนเข้าสู่ C++ ทบทวนเรื่องของฟังก์ชั่น ดังต่อไปนี้
1. วิธีการสร้างฟังก์ชั่น
ท่านจะต้องศึกษาวิธีการที่ใช้ในการสร้างฟังก์ชั่นไว้ใช้เอง ออกแบบและสร้างได้อย่างไร วางไว้ที่บรรทัดไหนในโปรแกรม ยกตัวอย่างเช่น ถ้าเราเขียนฟังก์ชั่นไว้ด้านล่างฟังก์ชั่น main( ) ดังตัวอย่างต่อไปนี้
void main( ) { call( ); }
void call( ) { // }
โค้ดในข้างต้นลักษณะนี้ ท่านจะไม่สามารถเรียกใช้ฟังก์ชั่น call( ) ได้ เนื่องมาจากฟังก์ชั่น main( ) ไม่รู้จักฟังก์ชั่น call() เพราะว่ามันถูกเขียนเอาไว้ด้านล่าง จากบรรทัดที่อยู่ใน main( ) มันมองหาฟังก์ชั่น call( ) ไม่เจอเมื่อเราแปลโปรแกรม เราจะพบกับข้อความ Error ฟ้องออกมาว่า Function "call" should have a prototype ซึ่งมีความหมายเป็นภาษาไทยว่า “ถ้าจะให้เรียกฟังก์ชั่น call() ได้นั้น ให้ประกาศฟังก์ชั่นต้นแบบเอาไว้ก่อน main() นะ” ฟังก์ชั่นต้นแบบ หรือ Prototype Function นี้ มีไว้เพื่อบอกให้ตัวแปลภาษารู้ว่า ในโปรแกรมนี้ ยังมีฟังก์ชั่นชื่อว่า call( ) อยู่นะ แต่อยู่ด้านล่างของ main( ) ดังนั้น เราจะต้องแก้ไขโค้ดโปรแกรมให้เป็นดังนี้ จึงจะใช้ได้
void call( );
void main( ) { call( ); }
void call( ) { // }
หรืออีกวิธีหนึ่งก็คือ ให้ประกาศฟังก์ชั่น call( ) เอาไว้ด้านบนก่อน main( ) เลย ดังนี้
void call( ) { // }
void main( ) { call( ); }
2. การคืนค่าของฟังก์ชั่น
เราสามารถกำหนดให้ฟังก์ชั่นส่งค่ากลับมายังจุดที่เรียกใช้ได้ โดยใช้คำสั่ง return แต่ก่อนที่จะใช้คำสั่ง return นั้นเราจะต้องดูก่อนว่า เราจะส่งค่าประเภทใดกลับไป ถ้าเป็นค่าจำนวนเต็ม เราจะต้องเปลี่ยนคำว่า void ที่อยู่หน้าฟังก์ชั่นให้เป็น int ดังตัวอย่างต่อไปนี้
int call( );
void main( ) { int a; a = call( ); }
int call( ) { return 5+6; }
จากตัวอย่าง จะเห็นได้ว่าฟังก์ชั่น call( ) เป็นฟังก์ชั่นแบบ int และให้คืนค่า 5+6 (ซึ่งก็คือ 11) กลับไปยังจุดที่เรียกใช้ ดังนั้น ถ้าเราไม่เปลี่ยนจาก void ให้มาเป็น int เราก็จะไม่สามารถส่งค่ากลับไปได้เลย บางท่านอาจจะสงสัยว่า ในการเขียนฟังก์ชั่นให้ส่งค่ากลับนั้นมีดีที่ตรงไหน และมีประโยชน์อะไร ถ้าเราเขียนโปรแกรมเล็ก ๆ น้อย ๆ เราอาจจะยังไม่เห็นประโยชน์ของมันมากนัก การคืนค่าจะช่วยให้ลดการสร้างตัวแปรได้มากขึ้น เพราะฟังก์ชั่นจะทำงานเสมือนกับตัวแปร ๆ หนึ่ง และโค้ดโปรแกรมจะลดบรรทัดลง ท่านควรที่จะศึกษาเรื่องนี้ไว้ เพราะเมื่อท่านเขียนศึกษาการโปรแกรมไปเรื่อย ๆ และได้พบกับโจทย์ปัญหาบ่อย ๆ ท่านก็จะพบว่าการคืนค่ากลับจากฟังก์ชั่นนั้นจะช่วยให้การเขียนโปรแกรมของท่านมีความสดใสมากขึ้นเลยทีเดียว
3. การส่งค่าไปให้ฟังก์ชั่น
เราสามารถส่งค่าให้กับฟังก์ชั่นได้ เพื่อให้ฟังก์ชั่นนำเอาค่าที่ส่งไปนี้ไปประมวลผล เราเรียกค่าที่ส่งนี้ว่า “พารามิเตอร์” หรือจะเรียกว่า “อากิวเมนต์” ก็น่าจะได้เหมือนกัน ลองดูตัวอย่างต่อไปนี้
#include <stdio.h>
int call( int a , int b );
void main( ) { printf("answer = %d\n", call( 10 , 20 ) ); }
int call( int a , int b ) { return a+b; }
จากตัวอย่างจะเห็นได้ว่า ฟังก์ชั่น call รับพารามิเตอร์ 2 ตัวคือ a กับ b เราได้เรียกโดยผ่านฟังก์ชั่น printf ส่งค่า 10 และ 20 ไปให้กับ call( ) และมันก็จะคืนค่ากลับมาโดยเอาเลขทั้งสองบวกกัน เพราะฉะนั้น ฟังก์ชั่น call( ) จึงคืนค่ากลับมาเป็น 30 แสดงออกทางจอภาพโดย printf ต่อมานั่นเอง ความรู้พื้นฐานเรื่องของฟังก์ชั่นที่ได้กล่าวไปนี้ จะเป็นรากฐานสำคัญที่จะช่วยผลักดันให้เราศึกษาภาษา C++ และ OOP ง่ายขึ้น เพราะในบทต่อ ๆ ไป ท่านจะพบกับการเรียกใช้ฟังก์ชั่น และการประกาศฟังก์ชั่นลักษณะนี้มากขึ้นเรื่อย ๆ เมื่อท่านเข้าใจในเรื่องของฟังก์ชั่นแล้ว มันก็จะกลายเป็นเรื่องที่ทำความเข้าใจได้ง่ายขึ้น เมื่อท่านศึกษาการเขียนโปรแกรม
จะเริ่มเรียนภาษา C หรือ C++ ก่อน
การเริ่มต้นศึกษาการเขียนโปรแกรมภาษา C++ นั้น อันดับแรกควรจะเริ่มศึกษาจากภาษา C ก่อน เพราะดังที่ได้อธิบายไปแล้ว ข้อแตกต่างระหว่าง C และ C++ ก็คือเรื่องของการประกาศคลาสในแบบของ OOP และรายละเอียดปลีกย่อยอื่น ๆ เท่านั้น นอกจากนั้น เรายังคงใช้ความรู้เดิมที่เกี่ยวกับภาษา C ล้วน ๆ ผู้ที่ต้องการศึกษาภาษา C++ หลาย ๆ ท่านเคยถามว่า จะเรียน C++ เลยได้หรือไม่ ไม่ต้องเรียน C ก่อน คำตอบก็คือ "ได้" แต่ถ้าท่านเข้าคอร์สเรียนภาษา C++ เลย ท่านจะได้เรียนเกี่ยวกับ OOP , การสร้างคลาสในขณะที่คำสั่งเบื้องต้นของภาษา C ยังไม่ได้เรียนเลย และถ้าท่านจำเป็นจะต้องเขียนโปรแกรมด้วยภาษา C++ เพื่อใช้ในการคำณวนเลขหรือทศนิยมล่ะ ท่านอาจจะทำไม่ได้เพราะพื้นฐานของภาษา C ยังไม่มี พราะฉะนั้น ถ้าท่านต้องการที่จะเขียนภาษา C++ ได้ ควรเริ่มที่ภาษา C อย่าไปติดอยู่ที่ว่ามันเป็นคนละภาษา มันคือภาษาที่ต่อเนื่องกัน เหมือนกันกับเด็กที่โตขึ้นจนเป็นผู้ใหญ่ ไม่ใช่คนละคนกัน แต่เป็นการต่อเนื่องเช่นเดียวกัน ขอสมมติตัวอย่างง่าย ๆ ที่เห็นได้ชัด ๆ เลยก็คือ
นายเอก อยากเขียนโปรแกรมภาษา C++ เป็น นายเอกเคยศึกษาการเขียนโปรแกรม Visual Basic กับ Delphi มาก่อน แต่ไม่เคยเรียนภาษา C หรือ C++ จากคอร์สไหนมาเลย นายเอกจึงเสาะแสวงหาที่เรียน ไปเจออยู่ที่หนึ่ง เป็นคอร์สสอนภาษา C++ รายละเอียดของคอร์สนี้เขียนไว้ดังนี้ - คลาสและอ็อปเจ็กต์ (Class and Object) - การสืบทอดคลาส (Inheritance in C++) - โพลิมอฟิซึมใน OOP (Polymorphm in OOP) - การประยุกต์ C++ บนวินโดวส์ (C++ for Windows Application) ขอถามท่านผู้อ่านว่า นายเอกเมื่อเข้าคอร์สนี้แล้ว นายเอกจะเข้าใจใน C++ หรือไม่ ??
เราลองมาพิจารณากัน ถ้านายเอกเข้าใจ ก็แสดงว่า นายเอกเป็นผู้ที่เก่งมาก ๆ เพราะเขาสามารถเข้าใจในการใช้ OOP กับ C++ ได้ แน่นอน นายเอกอาจจะเข้าใจในทฤษฎีของ OOP ระดับหนึ่ง เพราะมีความรู้ด้าน Visual Basic และ Delphi มาบ้างแล้ว แต่เมื่อมาศึกษาในเรื่องของตัวภาษาของ C++ อาจจะสับสน เพราะถ้านายเอกไม่ได้มีความรู้ในเรื่องของภาษา C มาก่อนเลย นายเอกก็จะไม่รู้จักประเภทของตัวแปรในภาษา C ไม่รู้ว่าการเขียน if..else และเครื่องหมายเปรียบเทียบในภาษา C นั้นเป็นอย่างไร รู้แต่ในภาษา Visual Basic เท่านั้น เพราะฉะนั้น เราสามารถพอสรุปได้แล้วว่า ถ้าเราเริ่มต้นศึกษาภาษา C++ เลยนั้น อาจจะต้องใช้เวลาที่นานสักหน่อย เพราะเราจะต้องหันกลับไปเปิดตำราดูคู่มือการเขียนโปรแกรมภาษา C ควบคู่ไปด้วย แต่ถ้านายเอก.. ศึกษาภาษา C มาก่อน นายเอกจะได้เรียนรู้ในเรื่องดังต่อไปนี้มาแล้ว - การใช้คอมไพเลอร์และลิงค์เกอร์ในภาษา C - ฟังก์ชั่น main( ) - การประกาศตัวแปรในภาษา C แบบ int , char , float , char * - การเปรียบเทียบในภาษา C ( == , != , < , > , <= , >= ) - คำสั่งเปรียบเทียบและทำซ้ำ เช่น if..else , for( ) , do..while , while( ) - การคำณวนในภาษา C เช่น +, - , * , / , % , ++ , -- , *= เป็นต้น - อะเรย์ 1 มิติ, 2 มิติ และ 3 มิติ - การสร้างฟังก์ชั่นในภาษา C - ตัวแปรแบบโครงสร้าง (Struct) - การเขียนข้อมูลไฟล์และการอ่านไฟล์ (File I/O) จากข้างต้น คือ เนื้อหาของภาษา C ที่นายเอกจะได้ศึกษา และเป็นเนื้อหาที่ท่านผู้อ่านหนังสือเล่มนี้ได้ศึกษากันมาในระดับหนึ่งแล้ว เพราะฉะนั้น เมื่อท่านมาศึกษาต่อในเรื่องของ C++ กับหนังสือเล่มนี้ จะไม่ขออธิบายในเนื้อหาดังกล่าว เพราะท่านสามารถศึกษาได้จากตำราภาษา C ของสำนักพิมพ์และผู้แต่งคนเดียวกันนี้
การศึกษาไปพร้อมกับหนังสือเล่มนี้ การศึกษาไปพร้อมกับหนังสือเล่มนี้ ขอให้ท่านศึกษาไปทีละลำดับ ๆ พร้อมกับทำตัวอย่าง เนื้อหาแต่ละส่วน ๆ ได้ทำการจัดลำดับตามความยากง่ายเอาไว้แล้ว ซึ่งอาจจะแตกต่างออกไปจากตำราเล่มอื่น เนื่องจากได้จัดลำดับเนื้อหาเพื่อเน้นการปฏิบัติจริงมากกว่าการอธิบายทฤษฎีของ OOP ให้หมดก่อนแล้วค่อยเข้าสู่การปฏิบัติ หลังจากที่ท่านได้ศึกษาเรื่องของ C++ และ OOP แล้ว ภาษาที่ท่านจะศึกษาต่อไป ท่านจะทำความเข้าใจกับมันได้ง่ายขึ้น ไม่ว่าจะเป็น C# หรือภาษา Java เนื่องจากท่านได้ศึกษาแนวคิดของ OOP ด้วยภาษา C++ เรียบร้อยแล้ว ขอให้ท่านบอกกับตัวเองว่า "คิดในแบบวัตถุ" (Think in object) แล้วท่านก็จะเข้าใจภาษา C++ และแนวคิดของ OOP โดยไม่ยาก
เอาล่ะครับ เรามาเปิดโลกของ "Object" กันในบทต่อไปเลยครับ
|