<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ta.in.th/index.php?action=history&amp;feed=atom&amp;title=Struct</id>
	<title>Struct - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ta.in.th/index.php?action=history&amp;feed=atom&amp;title=Struct"/>
	<link rel="alternate" type="text/html" href="https://wiki.ta.in.th/index.php?title=Struct&amp;action=history"/>
	<updated>2026-06-16T22:56:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0-alpha</generator>
	<entry>
		<id>https://wiki.ta.in.th/index.php?title=Struct&amp;diff=108&amp;oldid=prev</id>
		<title>Tata: Created page with &quot;== การทำ constructor แบบสั้น (เพิ่งไปเจอมาเจ๋งดีเลยเอามาลง ถึงจะสั้นกว่...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.ta.in.th/index.php?title=Struct&amp;diff=108&amp;oldid=prev"/>
		<updated>2019-03-07T17:19:22Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== การทำ constructor แบบสั้น (เพิ่งไปเจอมาเจ๋งดีเลยเอามาลง ถึงจะสั้นกว่...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== การทำ constructor แบบสั้น (เพิ่งไปเจอมาเจ๋งดีเลยเอามาลง ถึงจะสั้นกว่าไม่เท่าไหร่ก็เหอะ 555+) ==&lt;br /&gt;
&lt;br /&gt;
* ส่วนที่ทำตัวหนา คือ ส่วนของการประกาศ constructor&lt;br /&gt;
 struct DOC{&lt;br /&gt;
     int docid;&lt;br /&gt;
     double rank;&lt;br /&gt;
     '''''DOC( int i, double r ) : docid(i), rank(r) {}'''''&lt;br /&gt;
 };&lt;br /&gt;
 credit : http://stackoverflow.com/questions/2574060/c-min-heap-with-user-defined-type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== การประกาศ Constructor แบบปกติ ==&lt;br /&gt;
&lt;br /&gt;
* เมื่อเรามี struct มาแล้วใน struct นั้นมีตัวแปรอยู่หลายตัว  เช่น&lt;br /&gt;
 struct ST{&lt;br /&gt;
     int id;&lt;br /&gt;
     double value;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
* เมื่อเราประกาศตัวแปร struct ชื่อ a ขึ้นมา แล้วต้องการกำหนดค่าตัวแปร id=1    value=3.5 เราต้องพิมพ์&lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     ST a;&lt;br /&gt;
     a.id = 1;&lt;br /&gt;
     a.value = 3.5;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* แต่เราสามารถกำหนด constructor ขึ้นมาเพื่อง่ายต่อการกำหนดได้ เช่น&lt;br /&gt;
 struct ST{&lt;br /&gt;
     int id;&lt;br /&gt;
     double value;&lt;br /&gt;
     ST(int xxx, double yyy)&lt;br /&gt;
     {&lt;br /&gt;
         id = xxx;&lt;br /&gt;
         value = yyy;&lt;br /&gt;
     }&lt;br /&gt;
 };&lt;br /&gt;
* แต่ถ้าเขียนแบบด้านบนจะไม่สามารถประกาศตัวแปร struct โล่งๆแค่นี้ได้&lt;br /&gt;
 ST a;&lt;br /&gt;
* แต่ต้องเขียนแบบนี้ (กำหนดให้ a.id=1    และ    a.value = 3.5)&lt;br /&gt;
 ST a'''''(1,3.5)''''';&lt;br /&gt;
* หรือ แบบนี้ (กำหนดให้ a.id=1    และ    a.value = 3.5)&lt;br /&gt;
 ST a='''''ST(1,3.5)''''';&lt;br /&gt;
&lt;br /&gt;
* ซึ่งมีวิธีแก้คือแก้เป็นแบบนี้ (แล้วเมื่อไม่ได้ใส่ parameter ใดเข้าไปจะมีค่าตามที่เรากำหนดไว้  ซึ่งจากในโค้ดตัวอย่างคือกำหนดให้เป็น 0 กับ 0.0)&lt;br /&gt;
 struct ST{&lt;br /&gt;
     int id;&lt;br /&gt;
     double value;&lt;br /&gt;
     ST(int xxx'''''=0''''', double yyy'''''=0.0''''')&lt;br /&gt;
     {&lt;br /&gt;
         id = xxx;&lt;br /&gt;
         value = yyy;&lt;br /&gt;
     }&lt;br /&gt;
 };&lt;br /&gt;
* เช่นถ้าประกาศอย่างนี้ x.id=0 และ x.value=0.0&lt;br /&gt;
 ST a;&lt;br /&gt;
* เช่นถ้าประกาศอย่างนี้ x.id=1 และ x.value=0.0&lt;br /&gt;
 ST a(1);&lt;br /&gt;
* เช่นถ้าประกาศอย่างนี้ x.id=1 และ x.value=3.5&lt;br /&gt;
 ST a(1,3.5);&lt;/div&gt;</summary>
		<author><name>Tata</name></author>
		
	</entry>
</feed>