ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comอื่นๆCafeใครเก่ง C++ ช่วยผมหน่อยครับ ด่วนครับงานนี$
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใครเก่ง C++ ช่วยผมหน่อยครับ ด่วนครับงานนี$  (อ่าน 1071 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
King
สมุนแก๊งเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 545



ดูรายละเอียด
« เมื่อ: 26 กันยายน 2007, 11:05:57 »

 คือเขาให้สร้าง Car เพื่อให้ได้ผลลัพธ์ดังนี้

โค๊ด:
Car Constructor.
Car Constructor.
Car Constructor.
########################
Car # 1
Color : red
Max speed : 123.45 km/hour.
Capacity : 4 person(s)
Door : 4
-------------------------------------------
Car # 2
Color : white
Max speed : 80 km/hour.
Capacity : 4 person(s)
Door : 2
-------------------------------------------
Car # 3
Color : Black
Max speed : 200 km/hour.
Capacity : 2 person(s)
Door : 3
-------------------------------------------
#########################
Car Destructure.
Car Destructure.
Car Destructure.





นี่คือคลาส main.cpp ที่เขาเอามาให้ครับ

โค๊ด:
#include <iostream>
#include "car.h"
using std::cout;
using std::endl;

int main(int argc, char *argv[]) {
    Car c1 ("red", 123.45, 4, 4)
Car c2 ("white", 80.00, 4, 2)
Car c3 ("Black", 200.00, 2, 3)
cout<<"###################################"<<endl;
c1.showDetail();
c2.showDetail();
c3.showDetail();
cout<<"###################################"<<endl;
return (0);
}


เขาให้สร้าง class car.h อ่ะครับ  ยังไงพี่ๆช่วยผมทีนะครับ  Kiss Kiss Kiss


นั่งน้ำตาจะไหลแล้ววววววว T_T
บันทึกการเข้า





เมพคุง
ก๊วนเสียว
*

พลังน้ำใจ: 32
ออฟไลน์ ออฟไลน์

กระทู้: 462



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 26 กันยายน 2007, 11:22:00 »

ดูก็รู้ว่าการบ้าน
ทำเองเหอะครับไม่ยากหรอก
บันทึกการเข้า

Anatomy of Adsense
http://www.thaiseoboard.com/index.php/topic,14925.0.html

รับทำ Script Custom ทุกชนิด สั่งมาทำได้หมด

รับตอบคำถามทุกชนิด
http://www.thaiseoboard.com/index.php/topic,60229.0.html
King
สมุนแก๊งเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 545



ดูรายละเอียด
« ตอบ #2 เมื่อ: 26 กันยายน 2007, 11:24:47 »

ดูก็รู้ว่าการบ้าน
ทำเองเหอะครับไม่ยากหรอก



อืม ขอบคุณครับ  คืออยากให้ช่วยสอนด้วยน่ะครับ ไม่ได้ขอให้ทำให้เฉยๆ

ผมนั่งดูมันมาตั้งแต่8โมงแระ เค้าให้ส่งก่อน11.20

ผมไม่รู้จะปรึกษาใคร เลยมาปรึกษาที่นี่

เพิ่งรู้น่ะครับ ว่าไม่ค่อยมีน้ำใจกันเลย

 Lips Sealed
บันทึกการเข้า





bubbleball
Administrator
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 444
ออฟไลน์ ออฟไลน์

กระทู้: 5,731



ดูรายละเอียด
« ตอบ #3 เมื่อ: 26 กันยายน 2007, 11:26:58 »

อ่าวเลยเวลาส่งแล้วสิ

จะเห็นว่า เขา include  class car.h มาแล้ว

#include "car.h"

ก็ลองดูดิครับว่า

int main(int argc, char *argv[]) {
    Car c1 ("red", 123.45, 4, 4)
   Car c2 ("white", 80.00, 4, 2)
   Car c3 ("Black", 200.00, 2, 3)

   cout<<"###################################"<<endl;
   c1.showDetail();
   c2.showDetail();
   c3.showDetail();
   cout<<"###################################"<<endl;
   return (0);
}

เขาส่งอะไรให้ contstructor บ้าง ก็ สร้าง constructor ที่รับค่า พารามิเตอร์พวกนั้นไป assign เป็น properties ของ class นั้นๆ

แล้วจะเห็นว่ามีการเรียกใช้ method showDetail  ก็ไปดูตรงผลลัพธ์ว่าเมื่อเรียก showDetail ได้ผลลัพธ์มาเป็นยังไง ก็เขียน method ตามนั้น

Car # 1
Color : red
Max speed : 123.45 km/hour.
Capacity : 4 person(s)
Door : 4

เผอิญผมไม่เคยเขียน C++ ไม่รู้มันต้องระบุ package หรือ class ไรเปล่านะ

แต่ถ้าflash จะประมาณนี้
โค๊ด:
class Car {
        function car(_color:String,maxSpeed:Number,capacity:Number,door:Number) {
                _color = _color;
                maxSpeed = maxSpeed;
                capacity     = capacity;
                door          = door;
        }

        public var showDetail = function() {
               trace("Car #" + _color) + "\n";
               trace("Max speed :" + maxSpeed) + "\n";
               trace("Capacity :" + capacity) + "\n";
               trace("Door :" + door) + "\n";
       }
}           
             
« แก้ไขครั้งสุดท้าย: 26 กันยายน 2007, 11:38:24 โดย bubbleball » บันทึกการเข้า

สงสัยติดต่ออะไรไปทักหาที่ Fair Thailand (ไม่ค่อยอ่านกล่องข้อความที่นี่)

Fair Market Thailand   กลุ่มจะอนุญาตให้ซื้อขายในอนาคต ผมสร้างและดูแลเอง


ปลาทอง
ลายเซนต์สูงไม่เกิน 250px
King
สมุนแก๊งเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 545



ดูรายละเอียด
« ตอบ #4 เมื่อ: 26 กันยายน 2007, 11:44:51 »

อ่าวเลยเวลาส่งแล้วสิ

จะเห็นว่า เขา include  class car.h มาแล้ว

#include "car.h"

ก็ลองดูดิครับว่า

int main(int argc, char *argv[]) {
    Car c1 ("red", 123.45, 4, 4)
   Car c2 ("white", 80.00, 4, 2)
   Car c3 ("Black", 200.00, 2, 3)

   cout<<"###################################"<<endl;
   c1.showDetail();
   c2.showDetail();
   c3.showDetail();
   cout<<"###################################"<<endl;
   return (0);
}

เขาส่งอะไรให้ contstructor บ้าง ก็ สร้าง constructor ที่รับค่า พารามิเตอร์พวกนั้นไป assign เป็น properties ของ class นั้นๆ

แล้วจะเห็นว่ามีการเรียกใช้ method showDetail  ก็ไปดูตรงผลลัพธ์ว่าเมื่อเรียก showDetail ได้ผลลัพธ์มาเป็นยังไง ก็เขียน method ตามนั้น

Car # 1
Color : red
Max speed : 123.45 km/hour.
Capacity : 4 person(s)
Door : 4

เผอิญผมไม่เคยเขียน C++ ไม่รู้มันต้องระบุ package หรือ class ไรเปล่านะ

แต่ถ้าflash จะประมาณนี้
โค๊ด:
class Car {
        function car(_color:String,maxSpeed:Number,capacity:Number,door:Number) {
                _color = _color;
                maxSpeed = maxSpeed;
                capacity     = capacity;
                door          = door;
        }

        public var showDetail = function() {
               trace("Car #" + _color) + "\n";
               trace("Max speed :" + maxSpeed) + "\n";
               trace("Capacity :" + capacity) + "\n";
               trace("Door :" + door) + "\n";
       }
}           
             



ขอบคุณครับ

แต่...เลยเวลาส่งแล้ว

ตกครับผม  ตกเลย

มันเป็นงานคะแนนช่วยอ่ะครับ....

สั่งตอนเช้า ส่งตอนหมดคาบ (8โมง-11.30)

 Lips Sealed Lips Sealed Lips Sealed Lips Sealed Lips Sealed Lips Sealed
บันทึกการเข้า





alcoholik
ก๊วนเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 265



ดูรายละเอียด
« ตอบ #5 เมื่อ: 26 กันยายน 2007, 14:48:30 »

พึ่งเห็นเมื่อตะกี้แต่เข้ามาสอนแล้วกัน

วิชานี้น่าจะเป็น object oriented programming อ่ะเปล่า ไม่ก็ C++

จุดสำคัญคือรู้จัก class ครับ

อ้างถึง

int main(int argc, char *argv[]) {
    Car c1 ("red", 123.45, 4, 4)
   Car c2 ("white", 80.00, 4, 2)
   Car c3 ("Black", 200.00, 2, 3)
   cout<<"###################################"<<endl;
   c1.showDetail();
   c2.showDetail();
   c3.showDetail();
   cout<<"###################################"<<endl;
   return (0);
}

อ้างถึง
Car c1 ("red", 123.45, 4, 4)

อันนี้ไม่รู้เขียนผิดปล่าวนะ แต่น่าจะเขียนอย่างนี้มากกว่า

Car c1 = new Car("red", 123.45, 4, 4);

หมายความว่าสร้าง object c1 ที่เป็นคลาส Car โดยใช้ constructor ของคลาสที่ต้องใส่ attribute ดังนี้
"red" น่าจะเป็นสี
123.45 เป็น max  speed
4 เป็น capacity
4 เป็น door

เราก็มาเขียนคลาส ในไฟล์ car.h น่ะแหละ

#include ... //อะไรก็ว่าไป

using namespace std;

class Car{

    // ก่อนอื่นสร้างตัวแปรเก็บค่าต่าง ส่วน type เปลี่ยนแปลงได้ตามเหมาะสม
    // ทำเป็น private เพื่อป้องกันการเข้าใช้งานจากอันอื่น
private:
    String color;
    double maxSpeed;
    int capacity;
    int door;

public:
    // อย่างที่บอกตามโจทย์ ต้องสร้าง constructor
    // constructor คือ method หรือ function ที่สร้างขึ้นใน class และมีชื่อเดียวกับ class เด่ะ ๆ
    Car(String c, double speed, int capac, int d)
    {
         // ทำเป็น set Accessor เพื่อสะดวกในการใช้งาน
         setColor(c);
         setSpeed(speed);
         setCapacity(capac);
         setDoor(d);
    }

    // ต่อไปทำ destructor
    ~Car()
    {
          //จริง ๆ ตรงนี้ไม่ต้องเขียนก็ได้แต่โจทย์กำหนดให้ print ออกมาทางหน้าจอก็ใส่ตามนั้น
          cout << "Car Destructure" << endl;
    }

    // ทำให้ดู method นึง ที่เหลือทำคล้าย ๆ กัน หรือจะไป implement นอก class ก็ได้ (นิยมกว่า)
    void setColor(String c)
    {    color = c; }
    void setSpeed(double speed);
    void setCapacity(int capac);
    void setDoor(int d);

    //  ถ้าจะให้ดี ทำ get accessor ไว้ด้วยทำให้เรียกใช้งานได้ง่าย เหมือนเดิมที่เหลือทำเองนะ
    String getColor()
    {    return color; }
    double getSpeed();
    int getCapacity();
    int getDoor();

    // จากนั้น implement method ที่โจทย์กำหนด มีอะไรก็ว่าไปเช่น อันนี้ cout ธรรมดาไม่ยาก
    // แต่เวลาจะเรียกใช้ตัวแปรให้ใช้ get accessor แทน เพื่อความปลอดภัย เช่น color ใช้ getColor(); เอา
    void showDetail();

}; // รู้สึกในภาษา C จะต้องใส่ตรงนี้ด้วยนะถ้าจำไม่ผิด


อาจจะมีข้อสงสัยว่าทำไมต้องทำ set accessor หรือ get accessor ให้มันยุ่งยาก
เพราะเราจะทำตัวแปรข้างใน class ให้เป็น private เพื่อป้องกันการเปลี่ยนแปลงจากภายนอก
สาเหตุน่าอ.น่าจะสอนนะ ที่จำได้ตอนเรียนก็เรื่องความปลอดภัย อะไรสักอย่างนี่แหละ

คร่าว ๆ น่าจะพอ get idea เป็น class มาตรฐานเลยนะ ผมเรียน ปี 4 ก็ยังต้องเรียนเลยวิชา OO เนี่ย

มีอะไรถามได้ครับ หวังว่าคงเป็นประโยชน์นะ
บันทึกการเข้า

คนเจ้าปัญญา : พอพบปัญหาอะไรก็วางก่อน พอเป็นอิสระมีอำนาจเหนือกว่าปัญหาแล้ว จึงจัดการกับปัญหานั้นอย่างเหนือชั้น
หน้า: [1]   ขึ้นบน
พิมพ์