[C++] การเก็บข้อมูลตามโครงสร้าง struct


1. การเก็บข้อมูลตามโครงสร้าง struct

struct เป็นโครงสร้างข้อมูลที่เราเป็นผู้กำหนดขึ้นมาเอง โดยการนำข้อมูลชนิดพื้นฐานต่างๆ เช่น int, float, double, string เป็นต้น ประกอบเข้าด้วยกันตามความต้องการของเราว่าเราต้องการเก็บข้อมูล struct มีลักษณะคล้ายคลาส แต่ไม่ต้องสร้างออบเจ็กต์ขึ้นมาใข้งาน

ข้อมูลที่เก็บอยู่ใน struct ถือเป็นการจัดเก็บข้อมูลชั่วคราวเช่นกัน เมื่อสิ้นสุดการทำงานข้อมูลที่มีอยู่เดิมก็จะหายไป

#include <iostream>
#include <string>
using namespace std;

struct Products {
 int ProductID;
 string ProductName;
 int ProductPrice;
};

int main(int argc, char** argv)
{ 
 Products p1;
 p1.ProductID = 001;
 p1.ProductName = "Shirt";
 p1.ProductPrice = 199;
 
 Products p2;
 p2.ProductID = 002;
 p2.ProductName = "Trousers";
 p2.ProductPrice = 375;
 
 cout << "---------------P1---------------" << endl;
 cout << "Product ID : " << p1.ProductID << endl;
 cout << "Product Name : " << p1.ProductName << endl;
 cout << "Product Price : " << p1.ProductPrice << endl;
 
 cout << "---------------P2---------------" << endl;
 cout << "Product ID : " << p2.ProductID << endl;
 cout << "Product Name : " << p2.ProductName << endl;
 cout << "Product Price : " << p2.ProductPrice << endl;
 
 system("pause"); 
 return 0;
}

Result :

---------------P1---------------
Product ID : 1
Product Name : Shirt
Product Price : 199
---------------P2---------------
Product ID : 2
Product Name : Trousers
Product Price : 375

2. การสร้าง Method ใน struct


#include <iostream>
#include <string>
using namespace std;

struct Products {
 int ProductID;
 string ProductName;
 int ProductPrice;
 const float DCRate = 0.1;
 
 double DCPrice(){
  return ProductPrice - (ProductPrice * DCRate);
 }
};

int main(int argc, char** argv)
{ 
 Products p;
 p.ProductID = 001;
 p.ProductName = "Shirt";
 p.ProductPrice = 199;
 
 cout << "Product ID : " << p.ProductID << endl;
 cout << "Product Name : " << p.ProductName << endl;
 cout << "Product Price : " << p.ProductPrice << endl;
 cout << "DC Price : " << p.DCPrice() << endl;
 
 system("pause"); 
 return 0;
}

Result :

Product ID : 1
Product Name : Shirt
Product Price : 199
DC Price : 179.1

3. การ Copy ข้อมูลจาก Struct หนึ่งไปอีก Struct หนึ่งด้วยฟังก์ชัน memcpy()

ถ้าเรามองว่าข้อมูลที่จัดเก็บอยุ่ในโครงสร้างแบบ struct คือ ข้อมูลชุดหนึ่งที่ถูกห่อรวมกัน ก็สามารถใช้ฟังก์ชัน memcpy() เข้ามาทำหน้าที่ copy ข้อมูลได้เช่นกัน


#include <iostream>
#include <string>
using namespace std;

struct Products {
 int ProductID;
 string ProductName;
 int ProductPrice;
};

int main(int argc, char** argv)
{ 
 Products p1;
 Products p2;
 
 p1.ProductID = 001;
 p1.ProductName = "Shirt";
 p1.ProductPrice = 199;
 
 memcpy(&p2, &p1, sizeof(p1));
 
 cout << "---------------P2---------------" << endl;
 cout << "Product ID : " << p2.ProductID << endl;
 cout << "Product Name : " << p2.ProductName << endl;
 cout << "Product Price : " << p2.ProductPrice << endl;
 
 system("pause"); 
 return 0;
}

Result :

---------------P2---------------
Product ID : 1
Product Name : Shirt
Product Price : 199

Previous
Next Post »