ภาษา C และ C++
ก่อนที่เราจะเข้าสู่การเขียนโปรแกรมภาษา C++ กัน เราจะมาทำความเข้าใจกันอย่างละเอียด ๆ กันก่อนถึงคำถามที่ผู้อยากเขียนโปรแกรมภาษา C++ สงสัยกันว่า ระหว่างภาษา C และ C++ นั้นมีความแตกต่างกันอย่างไร และจะศึกษาภาษาใดถึงจะดีที่สุดในปัจจุบัน ผู้ที่จะตอบให้ได้ดีที่สุดนั้นก็คือ ตัวท่านผู้ศึกษาเอง หนังสือและตำราทั้งหลายเป็นเพียงแหล่งข้อมูลเท่านั้น ดังนั้น ในบทแรกนี้ เรามาทำความเข้าใจให้ตรงกันเสียก่อนว่า ทำไมจะต้องเป็น C++ แค่ C ยังไม่พออีกหรือ…
ยินดีต้อนรับการก้าวเข้าสู่โลกของ C++ ณ บรรทัดต่อจากนี้
จากภาษา 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
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
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
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" กันในบทต่อไปเลยครับ
ที่มา http://members.tripod.com/mt_kmitnb/Computer_Programming/ch01.htm