Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำความเข้าใจ C++ Struct Constructors: จุดประสงค์ ไวยากรณ์ และการใช้งาน

ทำความเข้าใจ C++ Struct Constructors: จุดประสงค์ ไวยากรณ์ และการใช้งาน

Constructors มักถูกอ้างถึงว่าเป็น member functions ที่จำเป็นซึ่งใช้สำหรับการ initialize class-type objects และ structures เหมือนภาษาโปรแกรมมิ่งอื่นๆ constructor ก็ถูกใช้ใน C++ เช่นกัน มันถูกใช้เพื่อสร้าง objects ด้วยวิธีการเฉพาะเพื่อหลีกเลี่ยงพฤติกรรมที่ไม่ได้ initialize หรือ undefined สำหรับ structures

คู่มือนี้จะอธิบายเกี่ยวกับ:

  • Constructor "struct" ใน C++ คืออะไร?
  • จุดสำคัญสำหรับการกำหนด Constructor ใน C++
  • ไวยากรณ์ของ Constructor "struct" ใน C++
  • การทำงานของ Constructor "struct" ใน C++
  • Default "struct" Constructor ใน C++
  • Parameterized "struct" Constructor ใน C++
  • วิธีสร้าง Pointers สำหรับ Structure Constructor ใน C++?
  • สรุป

ใน C++ " struct " เป็นที่รู้จักในฐานะโครงสร้างที่เป็น special function member ภายใน struct Constructor "struct" ถูกใช้เพื่อ initialize ตัวแปรสมาชิกของมันและช่วยให้ผู้ใช้สามารถสร้างกลุ่มตัวแปรใหม่ที่ประกอบด้วย mixed data types ในที่เดียวได้ คำพูดง่ายๆ Constructor " struct " เป็นวิธีการเฉพาะที่ถูก invoke อัตโนมัติทุกครั้งที่ผู้ใช้ประกาศ object สำหรับ class

จุดสำคัญสำหรับการกำหนด Constructor ใน C++

นี่คือจุดสำคัญบางอย่างสำหรับการกำหนด constructor ใน C++:

  • Constructor จะมีชื่อเดียวกับ class ที่มันเป็นส่วนหนึ่งเสมอ
  • หากผู้ใช้ไม่ได้ให้ constructor มันจะสร้าง default constructor ขึ้นมา
  • Constructors ถูกใช้สำหรับ initialization มากกว่าการดำเนินการ input/output
  • ใช้สำหรับจัดสรรหน่วยความจำในรันไทม์ด้วยความช่วยเหลือของ operator
  • มันไม่สามารถประกาศเป็น virtual และ static ได้
  • ผู้ใช้สามารถประกาศ constructor มากกว่าหนึ่งได้ (สามารถ overload ได้)

ไวยากรณ์ของ Constructor "struct" ใน C++

มาดูไวยากรณ์ทั่วไปของ struct constructors กัน:

struct Structure-Name{
d_type variable1;
d_type variable2;
........
........

//without parameters constructor
Structure-Name()
{
//code
}

//with parameters constructor
Structure-Name (d_type variable1, d_type variable2,..)
{
//code
}

};

ตามไวยากรณ์ที่อธิบายไว้ข้างต้น:

  • "Structure-Name" จะถูกแทนที่ด้วยชื่อโครงสร้างที่ผู้ใช้ต้องการและจะถูกกำหนดด้วยคีย์เวิร์ด "struct"
  • "d_type variable1" แทนชื่อตัวแปรพร้อม data types ที่แตกต่างกัน
  • จากนั้น Constructor "Structure-Name()" จะถูกกำหนดโดยไม่มี parameter
  • ต่อมา ไวยากรณ์ของ parameterized constructor ก็ถูกกำหนดเช่นกัน เช่น "Structure-Name(d_type variable1,…)" แทน parameterized constructor

หมายเหตุ: การประกาศ "struct" เหมือนกับการประกาศ class ใน C++

การทำงานของ Constructor "struct" ใน C++

ใน C++ ผู้ใช้สามารถใช้ struct constructor โดยไม่มีหรือมี parameters ตามความต้องการของพวกเขา มาดูการสาธิตโค้ดต่อไปนี้เพื่อความเข้าใจที่ดีกว่า

สร้าง Default "struct" Constructor ใน C++

เพื่อสร้าง default struct constructor ใน C++ ให้ดูโค้ดบล็อกต่อไปนี้:

#include <iostream>
using namespace std;

struct folk{
string name;
float height;
int age;

folk(){
name= "David";
height = 6.7;
age = 26;
cout<<"Name: "<<name<<endl<<"Height: "<<height<<endl<<"Age: "<<age<<endl;
}
};

int main()
{
folk();
}

ในโค้ดบล็อกที่ให้มาข้างต้น:

  • ในตอนแรก เราเพิ่มไลบรารี input/output stream “# include <iostream>” เป็น header file
  • ต่อไป ใช้ “using namespace std” เพื่อเปิดใช้งานการใช้งาน identifier ของ standard library
  • หลังจากนั้น เราสร้าง “folk()” structure ที่มีสมาชิก 3 ตัวด้วย data types ที่ต่างกัน เช่น "name" เป็น string, "height" เป็น float และ "age" เป็น integer type ตามลำดับ
  • จากนั้น เพิ่ม constructor สำหรับ struct และ initialize สมาชิกด้วยค่าที่เกี่ยวข้อง ภายใน constructor body เรากำหนดข้อมูลของ folk structure และใช้คำสั่ง "cout" เพื่อแสดงผลลัพธ์บนคอนโซล

Output

สร้าง Parameterized "struct" Constructor ใน C++

เพื่อสร้าง parameterized constructor ใน C++ ให้ลองโค้ดที่ให้มาด้านล่าง:

#include <iostream>
using namespace std;

struct folk{
string name;
float height;
int age;

folk(string x, float y, int z){
name = x;
height = y;
age = z;
}
};

int main()
{
folk f1("Ayzel", 5.1, 23);
cout<<"Name: " <<f1.name<<endl<<"Height: "<<f1.height<<endl<<"Age: "<<f1.age<<endl;
}

ที่นี่:

  • เราขยายตัวอย่างที่อภิปรายไว้ก่อนหน้าและส่งตัวแปรพร้อม data types ที่เกี่ยวข้องเป็น parameters ไปยัง constructor เช่น "x" เป็น string, "y" เป็น float และ "z" เป็น integer
  • สุดท้าย ภายในฟังก์ชัน "main()" เราสร้าง object ชื่อ "f1" และเรียก constructor ด้วยค่า จากนั้นใช้คำสั่ง "cout" เพื่อพิมพ์ค่าผลลัพธ์ของตัวแปรบนคอนโซล

Output

ทำความเข้าใจ C++ Struct Constructors: จุดประสงค์ ไวยากรณ์ และการใช้งาน

วิธีสร้าง Pointers สำหรับ Structure Constructor ใน C++?

Pointer เป็นตัวแปรที่ใช้สำหรับจัดเก็บที่อยู่หน่วยความจำของ object ใน C++ pointers ยังใช้สำหรับการ iterate over elements ของ array หรือโครงสร้างข้อมูลอื่นๆ และวัตถุประสงค์อื่นๆ มากมาย Pointer variables ยังถูกสร้างสำหรับ user-defined types เช่น structures มาดูตัวอย่างที่ให้มาสำหรับการสร้าง pointer สำหรับ structures:

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

struct folk
{
string name;
int age;
};

int main(){
struct folk f = {"Elice ", 28};
struct folk *ptr;
ptr = &f;
cout << f.name << f.age << endl;
cout <name <age << endl;
return 0;
}

ในโค้ดที่ให้มาข้างต้น:

  • เราเพิ่ม header files “<iostream>” และ “<cstring>”
  • จากนั้น ระบุ “using namespace std” เพื่อเปิดใช้งานการใช้งาน identifier ของ standard library
  • ต่อไป เราสร้าง “folk()” structure ที่มีสมาชิก 2 ตัวด้วย data types ที่ต่างกัน เช่น "name" เป็น string และ "age" เป็น integer type ตามลำดับ
  • หลังจากนั้น เรากำหนด pointer "ptr" ไปยัง "folk" structure
  • ตอนนี้ เราสร้าง pointer "ptr" สำหรับชี้ไปที่ตัวแปร structure "f" ตามผลลัพธ์ "ptr" จึงบันทึกที่อยู่ของตัวแปร structure "f"
  • สุดท้าย เราใช้ operator "->" เพื่อเข้าถึง data members ของ structure members ของ structure โดยใช้ pointer ไปยัง structure นั้น

นี่คือ output ของโค้ดที่อธิบายไว้ข้างต้น:

ทำความเข้าใจ C++ Struct Constructors: จุดประสงค์ ไวยากรณ์ และการใช้งาน

สรุป

ใน C++ "struct" เป็นที่รู้จักในฐานะโครงสร้างที่เป็น special member function ภายใน struct ที่ใช้ initialize ตัวแปรสมาชิกของมันและช่วยให้ผู้ใช้สร้างกลุ่มตัวแปรใหม่ที่ประกอบด้วย mixed data types ในที่เดียวได้ ผู้ใช้สามารถกำหนด constructor ด้วยหรือไม่มี parameter ได้ ใน C++ pointer variables ยังถูกสร้างสำหรับ user-defined types เช่น structures เราได้สาธิตข้อมูลโดยละเอียดเกี่ยวกับ struct constructors ใน C++

เกี่ยวกับผู้เขียน

ทำความเข้าใจ C++ Struct Constructors: จุดประสงค์ ไวยากรณ์ และการใช้งาน

Maria Naz

ฉันมีปริญญาโทด้านวิทยาการคอมพิวเตอร์ ฉันหลงใหลในงานของฉัน สำรวจเทคโนโลยีใหม่ เรียนรู้ภาษาโปรแกรมมิ่ง และฉันชอบแบ่งปันความรู้ของฉันกับโลก