Just another WordPress.com site

Class ใน C++

แนวคิดเกี่ยวกับ class คือ แนวคิดที่ต้องการนำเอาฟังก์ชันที่มีความเกี่ยวข้องกันมารวมไว้ด้วยกัน เพื่อที่จะได้โครงสร้างที่เป็นระเบียบ ตัวอย่างเช่น

สมมติว่าเราสนใจฟังก์ชันเกี่ยวกับที่เกี่ยวกับสี่เหลี่ยมผืนผ้า ซึ่งก็จะมี

-ฟังก์ชันเกี่ยวกับพื้นที่

-ฟังก์ชันหาความยาวเส้นรอบรูป

เมื่อนำฟังก์ชันมารวมไว้ด้วยกันแล้ว เราจะเรียกสี่เหลี่ยมผืนผ้าว่า class และเรียกฟังก์ชันต่างๆ ที่อยู่ใน class ว่า method

ในภาษา C++ เราสามารถสร้าง class โดยใช้คำสั่งดังนี้

class ชื่อ class

{

ชื่อ method ต่างๆ และ ตัวแปรต่างๆ

};

สำหรับ ชื่อ method และตัวแปรต่างๆนั้น ถ้าเราต้องการให้มันเรียกใช้เฉพาะภายใน class เราจะประกาศ private ข้างหน้าชื่อ method นั้นๆ

แต่ถ้าเราต้องการให้ method หรือตัวแปรนั้นๆ เรียกใช้ภายนอก class ได้ เราจะใช้การประกาศ public ข้างหน้าชื่อ method หรือตัวแปรนั้นๆ

อย่างในที่นี้เราต้องการให้ฟังก์ชันพื้นที่ และฟังก์ชันความยาวรอบรูปเรียกใช้ภายนอก class ได้ด้วย เราจะเขียนโค้ดใน C++ แบบนี้ครับ

ถัดจากนั้นเราก็จะเขียนโค้ดการคำนวนต่างๆเกี่ยวกับฟังก์ชัน area และ perimeter โดยลักษณะการเขียนก็จะเขียนเหมือนฟังก์ชันธรรมดาๆ เพียงแต่จะต้องเติมชื่อ class หน้าฟังก์ชันดังนี้ครับ

ในการเรียกใช้ class เราจะต้องประกาศ class ขึ้นมาก่อนถึงจะเรียกใช้งานมันได้ วิธีการประกาศ class ก็เหมือนๆกับการประกาศตัวแปรทั่วไปครับ  คือ ชื่อ class ชื่อตัวแปร เช่น

rectangle rect;

โดยทั่วๆไปเขาจะไม่นิยมเรียก rect ว่าตัวแปร เขาจะเรียกให้มันดูยิ่งใหญ่กว่านั้นโดยเรียกว่า object ครับ

เราจะมองกระบวนการประกาศข้างต้นนี้ว่า การสร้าง object ที่ชื่อว่า rect

พอเราประสร้าง object ขึ้นมาแล้วเราสามารถใช้ method ต่างใน class rectangle ได้โดยใช้จุด “.” แล้วตามด้วชื่อ method ดังตัวอย่างต่อไปนี้ครับ

สำหรับต่ออย่างต่อไปผมจะสร้าง class ที่ชื่อว่า circle โดย class นี้มี mehtod อยู่ 2 method คือ

1. method คำนวนพื้นที่วงกลม

2. method คำนวนความยาวเส้นรอบรูปวงกลม

โดยเราจะสร้างให้ method เหล่านี้สามารถเรียกใช้ภายนอก class ได้

และมีค่าคงที่หนึ่งตัวคือ \pi ซึ่งต้องการให้เรียกใช้ได้ภายใน class เท่านั้น

สำหรับการประกาศค่าคงที่ C++ จะบังคับให้เราสร้างตัวแปรที่ใช้เก็บค่าคงที่เป็นชนิด static ก่อน ซึ่งการประกาศตัวแปรเป็นชนิด static นั้นเครื่องคอมพิวเตอร์จะทำการจองเนื้อที่หน่วยความจำให้เรา และทำให้ method ใดๆ สามารถเรียกข้อมูลจากหน่วยความจำนี้ได้

สำหรับตัวอย่างนี้ เราสามารถเขียน class ได้ดังนี้

เมื่อลองทดสอบเรียกใช้ class บนในส่วนของ main ดู

เราจะพบผลลัพธ์ของการรันดังนี้

ในการสร้าง method ในการ class เราสามารถเรียกใช้งาน method ที่เราเคยสร้างไว้แล้วได้ด้วยนะครับ เช่น สมมติว่าผมอยากสร้าง method ที่ชื่อว่า show ซึ่งใช้แสดงผลค่าพื้นที่และความยาวเส้นรอบรูปของวงกลม ผมอาจจะเขียน code แบบนี้ได้ครับ

method ที่ชื่อว่า show จะสมารถเรียกใช้ method ที่ชื่อว่า area และ perimeter ที่อยู่ใน class เดียวกันได้ทันที


ทีนี้เรามาลองทดสอบโค้ดของเราดู โดยเราจะลองเรียกใช้ method ที่ชื่อว่า show ใน main ดูดังนี้


เมื่อทำการรันดูจะได้ผลลัพธ์ดังภาพครับ


สำหรับ method ใน class ถ้าเราประกาศ static นำหน้า method ใดๆก็ตาม เราจะสามารถเรียกใช้ method นั้นๆ โดยไม่ต้องสร้าง object ขึ้นมาครับ ตัวอย่างเช่น สมมติผมประกาศแบบนี้

ในส่วนของ main นั้นเราสามารถเรียกใช้ method ที่ชื่อว่า area และ perimeter ได้ทันทีดังนี้ครับ

เมื่อลองทำการรันดูจะพบผลลัพธ์ดังนี้ครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: