หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
 C++ Tutorial  

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 C++
 
 

Class

 

บทนี้เป็นเรื่องที่สำคัญสำหรับการเขียนโปรแกรมภาษา C++ นะครับ

   
 
#include <iostream.h>

class one
{
	int value;
public:
	void set(int in);
	int get(void);

};

void one::set(int in)
{
	value=in;
}

int one::get(void)
{
	return value;
}


int main()
{
one c1,c2;
int dd=5;

	c1.set(dd);
	c2.set(20);

	cout<<c1.get()<<"\n";
	cout<<c2.get();

	return 0;
}
 
   

[Download Code]

นี่เป็นตัวอย่างแรกเกี่ยวกับการใช้คลาสนะครับ โดยวิธีการสร้างคลาสก็ทำคล้ายๆกับ structure นะครับ แต่ข้อมูลในคลาสนั้นจะมีหลายชนิดครับ ในตัวอย่างนี้เราจะเห็นข้อมูล 2 ชนิดนะครับ ชนิดแรกก็คือชนิด private ก็คือข้อมูลปกติของคลาสในตัวอย่างก็คือ value ครับ ข้อมูลชนิดต่อมาก็คือ public ต้องชื่อคำสั่ง public : ก่อนแล้วจึงสร้างข้อมูลชนิดนี้

ฟังดูแค่ชื่อก็พอจะรู้แล้วนะครับว่า 2 อย่างนี้ต่างกันอย่างไร private แปลตรงๆ ก็คือส่วนตัว หมายถึง ข้อมูลชนิดนี้จะถูกซ่อนไว้และเราไม่สามารถอ้างถึงข้อมูลเหล่านี้ได้ ส่วนข้อมูล public แปลตรงๆ ก็คือ สาธารณะ นั่นหมายถึง เราสามารถเรียกใช้ข้อมูลเหล่านี้ ในส่วนอื่นของโปรแกรมได้ครับ ดังนั้น วิธีที่เราจะสามารถเข้าถึงข้อมูลชนิด private ได้ก็ต้องใช้ข้อมูลชนิด public นี่ล่ะครับช่วย

หลังจากเราสร้างคลาสเสร็จแล้วเราก็จะมากำหนดส่วนของฟังก์ชั่นกันนะครับ ฟังก์ชั่นเหล่านี้เป็นข้อมูลชนิด public ดังนั้นจึงสามารถเรียกใช้ในส่วนของโปรแกรมได้ สำหรับวิธีกำหนดนั้นแปลกกว่าการกำหนดฟังก์ชั่นทั่วไปนั้นคือ ถ้าฟังก์ชั่นของเราชื่อว่า set เป็นแบบ void ทั่วไปเราจะใช้ว่า void set(int in) แต่ถ้าเป็นคลาส เราจะใช้ว่า void one::set(int in) โดยจะต้องใช้ชื่อคลาสขึ้นก่อนตามด้วยเครื่องหมาย :: ครับ

การกระทำของฟังก์ชั่น set() คือการให้ค่าแก่ value ครับ นี่แหละครับคือวิธีการเข้าถึงข้อมูลชนิด private ดังนั้น หากเราต้องการให้ค่าแก่ value เราก็ต้องใช้คำสั่ง set() เช่น c1.set(dd) แต่ถ้าเราใช้คำสั่ง c1.value=dd ก็จะไม่สามารถทำได้เพราะ value เป็นข้อมูลชนิด private ครับ ในส่วนของเมนก็ไม่มีอะไรนะครับ วิธีการเรียกใช้คลาสก็คล้ายๆกับ structure ครับ

เพื่อนๆ หลายคนอาจจะสงสัยว่า เอ๊ะ! ทำไมเราไม่กำหนด value ให้เป็น public ไปเลยจะได้ไม่ต้องยุ่งยาก ทั้งนี้ก็เพราะเมื่อเราเขียนโปรแกรมใหญ่ๆ โอกาสผิดพลาดจะมีน้อยครับ เพราะข้อมูลชนิด private จะถูกซ่อนไว้ ถ้าเราไม่ตั้งใจไปยุ่งกับมัน มันก็จะไม่เปลี่ยนแปลงไปครับ

ส่วนสำคัญอีกอย่างหนึ่งก็คือ c1 ที่เราสร้างขึ้นมาไม่ใช่ตัวแปรนะครับ แต่เราจะเรียกมันว่าเป็น object ของคลาส one ครับ

   
 
#include <iostream.h>

class one
{
	int value;
public:
	one(void);
	void set(int in);
	int get(void);

};

one::one(void)
{
	value=10;
}

void one::set(int in)
{
	value=in;
}

int one::get(void)
{
	return value;
}

int main()
{
one c1,c2,c3;
int dd=5;

	c1.set(dd);
	c2.set(20);

	cout<<c1.get()<<"\n";
	cout<<c2.get()<<"\n";
	cout<<c3.get();

	return 0;
}
 
   

[Download Code]

ตัออย่างนี้เหมือนกับตัวอย่างแรกเว้นว่าในส่วนของ public ผมได้เพิ่ม one(void) เข้าไป อันนี้เรียกว่า constructure ครับ โดยตัว constructure นี้จะมีชื่อเดียวกันกับชื่อของคลาส โดยส่วนนี้จะถูกเรียกใช้โดยอัตโนมัติหลังจากเราสร้าง object ขึ้นมาครับ

ในส่วนของเมนผมได้เพิ่ม c3 เข้าไป แต่ไม่ได้กำหนดค่าอะไรให้ จากนั้นเราก็ให้พิมพ์ค่าออกมา จะเห็นว่าค่าของ c3 จะเป็นค่าที่ constructure กำหนดให้โดยอัตโนมัติครับ

   
 
#include <iostream.h>

class one
{
	int value;
public:
	one(void) {value=10;};
	void set(int in) {value=in;};
	int get(void) {return value;};

};

int main()
{
one c1,c2,c3;
int dd=5;

	c1.set(dd);
	c2.set(20);

	cout<<c1.get()<<"\n";
	cout<<c2.get()<<"\n";
	cout<<c3.get();

	return 0;
}
 
   

[Download Code]

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

   
 
class one
{
	int value;
public:
	one(void);
	void set(int in);
	int get(void);

};

one::one(void)
{
	value=10;
}

void one::set(int in)
{
	value=in;
}

int one::get(void)
{
	return value;
}
 
   
[Download Code]

   
 
#include <iostream.h>
#include "file.h"

int main()
{
one c1,c2,c3;
int dd=5;

	c1.set(dd);
	c2.set(20);

	cout<<c1.get()<<"\n";
	cout<<c2.get()<<"\n";
	cout<<c3.get();

	return 0;
}
 
   

[Download Code]

ตัวอย่างนี้ให้กำหนดส่วนบนสุดเป็นไฟล์ชื่อว่า file.h ส่วนที่ 2 ให้กำหนดเป็นไฟล์ชื่ออะไรก็ได้จุด cpp ครับ

   
 
#include <iostream.h>

class person
{
protected:
	int height;
	int width;

public:
	void set(int h,int w) {height=h, width=w;};
	int get(void) {return height*width;
	};
};

class student: public person
{
public:
	int get(void) {return height*width;};
};

int main()
{
person one;
student two;

	one.set(170,50);
	two.set(150,45);

	cout<<one.get()<<"\n";
	cout<<two.get()<<"\n";

	return 0;
}
 
   

[Download Code]

ตัวอย่างนี้แสดงวิธีการใช้งานคลาสร่วมกันครับ โดยเราจะมีคลาสที่เรียกว่า parent class (ผมขอเรียกว่าคลาสแม่ ก็แล้วกันครับ) ในตัวอย่างก็คือ person ครับ โดยภายในนี้จะมีข้อมูลอีกชนิดของคลาสก็คือ protected จะเป็นข้อมูลที่ไม่สามารถเรียกใช้โดยทั่วไปแต่สามารถถูกเรียกใช้โดย derived class (ผมขอเรียกว่าคลาสลูก ก็แล้วกันครับ) ในตัวอย่างก็คือ student ครับ

จากตัวอย่างจะเห็นว่าเมื่อเราเริ่มสร้างคลาส student จะมีคำสั่ง :public person นั่นหมายถึงให้เป็น derived class ของ person ครับ ดังนั้นคลาสนี้จึงสามารถเรียกทุกส่วนของ person ได้ยกเว้นส่วนที่เป็น private ครับ

เมื่อเราเริ่มส่วนของเมน เราเรียกใช้ฟังก์ชั่น set ซึ่งไม่มีใน student ดังนั้นมันก็จะไปเรียกใช้ของ person แทนครับ

 

BACK

คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th