วันนี้เขียนโปรแกรม OX ส่งการบ้านวิชา Artificial Intelligence เจอปัญหาเกี่ยวกับ Class มากมาย สาเหตุหลักคือ เราเอาไปปนกับ Java นั่นเอง. ประเด็นสำคัญสำหรับวันนี้คือ เวลาเราจะใช้งาน Object ที่จะต้องส่งค่าเข้า หรือ Return ค่ากลับมา หรือนำเอา Object หนึ่งไปใช้ในอีก Object หนึ่ง ต้องประกาศ Type เป้น <class>* เนื่องด้วย มันจะได้รับส่งเป็นค่า Reference ของ object ตัวนั้นๆ
ที่เจอปัญหามาก็คือ ค่าผิด หรือเป็น null pointer บ่อยครั้ง สาเหตุใหญ่ก็เกิดจาก เราประกาศ type เป็น <class> ไปเลย เวลา return ค่ากลับ มันคงไม่รู้ว่าจะ copy ไปใส่อีกตัวอย่างไร แล้วก็อย่าลืมพวกตัวเลข ธรรมดาด้วย int , byte , char ก็ดี ถ้ามีการสร้างภายใน function แล้ว ส่งเข้าไปให้ object ทำการเก็บนั้น ก็ต้องสร้างตัวแปรเป็นแบบ reference เหมือนกัน พวกนี้เจอปัญหาเหมือนกันคือ จริงๆมันคือ local variable พอจบ function มันก็จะถูกทำลายทิ้ง ถ้าเอา local variable ไปเก็บดื้อๆใน class มันก็จะเน่าไปด้วย ต้อง new dynamic variable ขึ้นมา แล้วก็ค่อยส่งเป็น reference pointer ไปเก็บไว้ใน class
ปัญหาอื่นๆก็มีเรื่องของ การ initial ตัวแปรใน class เราไม่สามารถ initial ทันทีทันใด นอก procedure แต่ใน class ได้เหมือน java เราต้องเอาไป initial ใน function ลูกเดียวนะ.
Comments
Mon, 23.06.2008 00:15
good idea
Fri, 20.06.2008 00:50
โอ้ ปั้นหมีโหดมั่งๆ อิ อิ
Thu, 19.06.2008 11:46
ขอบคุณมาก ๆ เห็นแล้วอมยิ้มแก้ม ปริ ^^
Thu, 19.06.2008 11:37
เห็นแล้ว แอบอมยิ้ม น่ารักมาก ๆ ค่ะ