วันอังคารที่ 16 สิงหาคม พ.ศ. 2559

ประเภทข้อมูลอื่น

Type aliases (typedef)

ในภาษา C++ เราสามารถสร้างประเภทตัวแปรขึ้นมาเอง (aliases type) ได้ นั่นหมายความว่าชื่อของประเภทข้อมูลจะเป็นอะไรก็ได้ตามที่เราต้องการ มีสองวิธีในการที่จะสร้างประเภทตัวแปรที่กำหนดโดยผู้ใช้ โดยการใช้คำสั่ง typedef และ using แต่ในบทเรียนนี้เราจะใช้แค่ typedef และ typedef มีรูปแบบการใช้งานคือ:
typedef data_type identify;
typedef เป็นคำสั่งในการสร้าง data_type เป็นประเภทข้อมูลเดิมที่มีอยู่ เช่น int, float เป็นต้น และ identify เป็นชื่อของตัวแปรที่มีกฏการตั้งชื่อเหมือนกับตัวแปร
มาดูตัวอย่าง
typedef int NUMBER;
typedef int myType;
typedef float mMoney;
typedef char * pCh;
ใน ตัวอย่าง เราได้ประกาศตัวแปรแบบประเภทของข้อมูล 4 ตัว เช่น NUMBER และ myType ซึ่งสืบทอดมาจากประเภทของตัวแปรที่มีอยู่ แล้วเราสามารถใช้ชื่อเหล่านี้ในตอนที่เราประกาศตัวแปรหรือทำสิ่งอื่นๆ
#include <iostream>
#include <new>
using namespace std;

int main ()
{
    typedef int NUMBER;
    typedef float mMoney;

    NUMBER n, m;
    mMoney cost = 10.5;

    n = 2;
    m = 3;

    cout << n + m << endl;
    cout << cost << endl;

    NUMBER x = 100, y = 200;
    cout << x + y << endl;
    return 0;
}
ในตัวอย่าง เราได้ประกาศ NUMBER ซึ่งเป็นประเภทแบบ int และ mMoney กับ float หลังจากนั้นเราสามารถใช้ตัวแปรชนิดข้อมูลนี้ เพื่อประกาศตัวแปรที่มีประเภทข้อมูลแบบ integer และ float ตามลำดับ ข้อได้เปรียบของมันคือเราสามารถเปลี่ยนประเภทของ NUMBER และเภทของข้อมูลที่ใช้ NUMBER จะถูกเปลี่ยนแปลงในครั้งเดียว

Enumerated types (enum)

ประเภท ข้อมูลแบบเป็นประเภทข้อมูลที่ให้เราสามารถสร้างตัวแปร enum ได้ และค่าของมันสามารถเป็นข้อมูลประเภทไหนก็ได้ ที่ยังไม่มีอยู่ในภาษา C++ มันมีรูปแบบดังนี้:
enum type_name {
  value1, value2, value3, ...
} object_names;
เราใช้คำสั่ง enum สำหรับการสร้างและตามด้วย type_name ซึ่งเป็นชื่อของ enum ในวงเล็บ {} ซึ่งสามารถเป็นตัวอักษรใดๆ ที่ไม่ใช้ประเภทข้อมูลที่มีอยู่ มาดูการสร้างตัวแปรแบบ enum
enum day_m {
    sunday, monday, tuesday, wednesday, thursday, friday, saturday
}

day_m myDay;

myDay = monday;
if (myDay == monday)  myDay = tuesday;
else myDay = sunday;
ในตัวอย่าง ตัวแปร enum day_mใช้สร้างตัวแปร myDayเพื่อที่จะให้เป็นประเภทข้อมูลของมันโดยคำสั่ง day_m myDay; ดังนั้น ประเภทข้อมูลที่ถูกต้องของ myDay สามารถเป็นค่าใดก็ได้ใน day_m เช่น sunday, monday, thuesday และไปเรื่อยๆ...
โดย ทั่วไป ค่าของข้อมูลใน enum ให้ถูกแปลงค่าให้เป็น integer โดยปริยาย โดยจะมีค่าเริ่มต้นจาก 0, 1, 2, ... ดังนั้น sunday นั้นเท่ากับ 0, monday เป็น 1, tuesday เป็น 2, และไปเรื่อย...
myDay = tuesday;
if (myDay == 2) {
    cout << "myDay is Tuesday";
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...