ตัวสร้างพารามิเตอร์ใน C ++: การทำงานและตัวอย่าง
เผยแพร่แล้ว: 2021-05-27สารบัญ
ตัวสร้างคืออะไร?
ตัวสร้างเป็นฟังก์ชันสมาชิกของคลาสที่ใช้ในการเริ่มต้นวัตถุในชั้นเรียน ใน C++ เมื่อมีการสร้างอ็อบเจ็กต์ซึ่งเป็นอินสแตนซ์ของคลาส คอนสตรัคเตอร์จะถูกเรียกโดยอัตโนมัติ ดังนั้น คอนสตรัคเตอร์จึงเป็นฟังก์ชันสมาชิกพิเศษของคลาส
ตัวสร้างพารามิเตอร์คืออะไร?
อาร์กิวเมนต์สามารถส่งผ่านไปยังตัวสร้างได้ เมื่อมีการสร้างวัตถุ อาร์กิวเมนต์เหล่านี้จะช่วยเตรียมใช้งานวัตถุ ในการสร้าง Parameterized Constructor ใน C++ เราสามารถเพิ่ม Parameter ให้กับ Function ได้เหมือนกับที่สามารถเพิ่มเข้าไปใน Function อื่นๆ ได้ เมื่อมีการกำหนดเนื้อหาของคอนสตรัคเตอร์ พารามิเตอร์จะถูกใช้เพื่อเริ่มต้นอ็อบเจ็กต์
ไวยากรณ์ของตัวสร้างพารามิเตอร์ใน C ++
คลาส name_of_class{
ตัวระบุการเข้าถึง (สาธารณะ/ป้องกัน/ส่วนตัว):
ตัวแปรสมาชิก
ฟังก์ชั่นสมาชิก
สาธารณะ:
name_of_class (ตัวแปร) { // รหัสสำหรับตัวสร้าง
}
// ฟังก์ชั่นและตัวแปรอื่น ๆ
}
ไวยากรณ์ที่มี name_of_class ตามด้วยตัวระบุการเข้าถึงที่มีฟังก์ชันของสมาชิกและตัวแปรของสมาชิก ทั้งหมดนี้รวมอยู่ในโค้ดตัวสร้าง ซึ่งหมายความว่าสามารถเรียกได้ในเนื้อหาของตัวสร้าง
อ่านเพิ่มเติม: โครงการโอเพ่นซอร์สสำหรับ C ++
ตัวอย่างของ Parameterized Constructor ใน C++
#include <iostream>
ใช้เนมสเปซ std;
ตัวอย่างคลาส
{
ส่วนตัว:
int a, b;
สาธารณะ:
// ตัวสร้างพารามิเตอร์
ตัวอย่าง (int a1, int b1)
{
a = a1;
ข = b1;
}
int getA()
{
ส่งคืน a;
}
int getB()
{
กลับข;
}
};
int หลัก ()
{
// เรียกตัวสร้าง
ตัวอย่าง e1(5, 10);
ศาล << “e1.a = ” << e1.getA() << “, e1.b = ” << e1.getB();
กลับ 0;
}
เอาท์พุต
คำอธิบาย: ตัวแปรไพรเวต a และ b ถูกประกาศในตัวอย่างคลาส ตัวสร้างพารามิเตอร์ถูกประกาศโดยใช้ฟังก์ชัน ตัวอย่าง ประกอบด้วยสองวิธี getA() และ getB() ในคลาสหลัก คอนสตรัคเตอร์ถูกเรียก และค่าการเข้าถึงของคอนสตรัคเตอร์ถูกกำหนด
ตัวสร้างพารามิเตอร์ใน C ++ ทำงานอย่างไร
อ็อบเจ็กต์เริ่มต้นขึ้น ซึ่งจะเก็บค่าหรือรายละเอียดและพารามิเตอร์ที่อ็อบเจ็กต์จะประมวลผลหรือมีเมื่อใดก็ตามที่ กำหนดคอนสตรัคเตอร์แบบ กำหนด พารามิเตอร์ใน C++ จากนั้นจึงเป็นไปได้ที่จะส่งข้อโต้แย้งไปยังวัตถุนั้น ขั้นตอนคล้ายกับการส่งค่าไปยังฟังก์ชัน มันยังมีความคล้ายคลึงกับการส่งผ่านค่าพารามิเตอร์ไปยังอ็อบเจ็กต์
ออบเจ็กต์ที่กำหนดไว้ในเนื้อหาของคอนสตรัคเตอร์จะเริ่มต้นโดยใช้พารามิเตอร์ ค่าควรถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันคอนสตรัคเตอร์เมื่อใดก็ตามที่มีการประกาศคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ ตัวสร้างเหล่านี้สามารถเรียกได้ทั้งโดยชัดแจ้งหรือโดยปริยาย วิธีการประกาศวัตถุแบบเดิมไม่ทำงาน
หมายเหตุ: ประเภทของการโทร-
- การโทรที่ชัดเจน - ตัวอย่าง e1= ตัวอย่าง (0,10)
- การโทรโดยนัย - ตัวอย่าง e1(0,10)
ชำระเงิน: แนวคิดโครงการใน C ++ สำหรับผู้เริ่มต้น
การใช้ Parameterized Constructor ใน C ++ คืออะไร?
การใช้คอนสตรัคเตอร์แบบกำหนดพารามิเตอร์มีดังนี้:
- ตัวสร้างโอเวอร์โหลด
- ใช้เพื่อกำหนดค่าต่างๆ ให้กับองค์ประกอบข้อมูลต่างๆ ของออบเจ็กต์ต่างๆ เมื่อมีการเริ่มต้น/สร้าง
ตัวอย่างอื่น:
1. โปรแกรมคำนวณพื้นที่สี่เหลี่ยม
#include <iostream>
ใช้เนมสเปซ std;
//ประกาศคลาส
สี่เหลี่ยมผืนผ้าคลาส {
ส่วนตัว:
ความยาวสองเท่า;
ความกว้างสองเท่า
สาธารณะ:
// การสร้างตัวสร้างพารามิเตอร์
สี่เหลี่ยมผืนผ้า (เลนคู่, brt สองครั้ง) {
// เริ่มต้นตัวแปรส่วนตัว
ความยาว = เลน;
ความกว้าง = brt;
}
คำนวณพื้นที่สองเท่า () {
ความยาวกลับ * กว้าง;
}
};
int หลัก () {
// การสร้างวัตถุและการเริ่มต้นข้อมูลสมาชิก
สี่เหลี่ยมผืนผ้า rect1(10, 8.6);
สี่เหลี่ยมผืนผ้า rect2(8.5, 6);
cout << “พื้นที่ของรูปสี่เหลี่ยมผืนผ้า 1: ” << rect1.calculateArea() << endl;
cout << “พื้นที่ของรูปสี่เหลี่ยมผืนผ้า 2: ” << rect2.calculateArea() << endl;
กลับ 0;
}
เอาท์พุต
คำอธิบาย: ในตัวอย่างนี้ เราได้สร้างสี่เหลี่ยมผืนผ้าคอนสตรัคเตอร์ () ที่มีพารามิเตอร์สองตัว: double len และ double bdt พารามิเตอร์เหล่านี้มีค่าที่ใช้ในการเริ่มต้นตัวแปรสมาชิกความยาวและความกว้าง เมื่อเราสร้างวัตถุของคลาส Rectangle เราส่งค่าของตัวแปรสมาชิกเป็นอาร์กิวเมนต์ เราสามารถคำนวณพื้นที่ด้วยฟังก์ชัน calcArea() เมื่อตัวแปรสมาชิกเริ่มต้นขึ้น
1. การแสดงเครื่องหมายนักเรียน
#include <iostream>
ใช้เนมสเปซ std;
นักเรียนชั้น {
สาธารณะ:
int std_id;//data สมาชิก
string std_name;//เช่นตัวแปร
ลอย std_marks;
นักเรียน (int i, string a, float b)
{
std_id = ผม;
std_name = ก;
std_marks = ข;
}
การแสดงเป็นโมฆะ ()
{
cout<<std_id<<” “<<std_name:<<” “<<std_marks <<endl;
}
};
int หลัก (เป็นโมฆะ) {
นักเรียน s1 = นักเรียน (101, “โซนิยา”, 89); //สร้างวัตถุของนักเรียน
นักศึกษา s2=นักศึกษา(102, “นากุล”, 59);
s1.display();
s2.display(); กลับ 0;
}
เอาท์พุต
คำอธิบาย: รหัส ชื่อ และเครื่องหมายเป็นสมาชิกข้อมูล (เช่น ตัวแปรอินสแตนซ์) นักเรียนเป็นคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์และวัตถุจะถูกสร้างขึ้นในคลาสหลัก
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
ตัวสร้างเป็นเพียงวิธีการพิเศษที่เราสามารถส่งผ่านค่าได้ หากเราไม่ส่งค่าไปยังคอนสตรัคเตอร์ ออบเจกต์สุดท้ายจะมีค่าเริ่มต้นอยู่บ้าง [1] [MOU2] ออบเจ็กต์เก็บเมธอดและค่าของตัวแปรสมาชิกที่เป็นส่วนหนึ่งของคลาสหลัก ในที่สุดค่าเหล่านี้จะถูกส่งผ่านตัวสร้าง คอน สตรัคเตอร์แบบ กำหนดพารามิเตอร์ใน C++ มีข้อได้เปรียบในการกำหนดค่าอ็อบเจ็กต์ที่แตกต่างกัน และสามารถโอเวอร์โหลดได้
ตอนนี้ คุณทราบเกี่ยวกับคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ใน C++ แล้ว หากคุณต้องการเจาะลึกและก้าวขึ้นในอาชีพการเขียนโปรแกรมของคุณ ให้สำรวจหลักสูตรจาก upGrad บริษัทการศึกษาระดับอุดมศึกษาออนไลน์ที่ใหญ่ที่สุดของอินเดีย คุณต้องตรวจสอบ โปรแกรมการพัฒนาซอฟต์แวร์ฟูลส แตกของ เรา
คอนสตรัคเตอร์คืออะไร?
ตัวสร้างเป็นวิธีพิเศษในคลาสที่มีชื่อเดียวกับคลาส เป็นเรื่องพิเศษเพราะว่าเมธอดนี้ถูกเรียกโดยอัตโนมัติเมื่อสร้างคลาส (instantiated) หากคอนสตรัคเตอร์ไม่มีอาร์กิวเมนต์ คลาสจะถูกสร้างอินสแตนซ์ด้วยค่าว่าง ตัวสร้างดำเนินการเริ่มต้นงานและเริ่มต้นตัวแปรอินสแตนซ์ของคลาส วัตถุประสงค์หลักของตัวสร้างคือการสร้างค่าคุณสมบัติของวัตถุ นอกจากนี้ยังใช้เพื่อดำเนินการใด ๆ ที่จำเป็นต้องดำเนินการเพียงครั้งเดียว ตัวสร้างมักจะประกาศเป็นสแตติกสาธารณะในคลาส และวัตถุถูกสร้างขึ้นโดยใช้ตัวสร้างนี้
ในคลาสหนึ่งสามารถมีคอนสตรัคเตอร์ได้กี่ตัว?
หากเรากำลังพูดถึง C ++ จำนวนตัวสร้างนั้นไม่จำกัด อย่างไรก็ตาม อาจมีข้อจำกัดอื่นๆ เนื่องจากสาเหตุอื่นๆ เช่น การจำกัดหน่วยความจำของเครื่อง ความซับซ้อนของคลาส เป็นต้น ดังนั้น จำนวนตัวสร้างจึงไม่จำกัด แต่จำนวนพารามิเตอร์ของตัวสร้างไม่ใช่ คอนสตรัคเตอร์ในคลาสสามารถมีได้มากเท่าที่คุณต้องการ แต่คอนสตรัคเตอร์เริ่มต้นเป็นสิ่งจำเป็น คลาสใด ๆ ที่ไม่มีคอนสตรัคเตอร์เริ่มต้นคือคลาสนามธรรม คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้
การเขียนโปรแกรมเชิงวัตถุคืออะไร?
การเขียนโปรแกรมเชิงวัตถุเป็นกระบวนทัศน์การเขียนโปรแกรมที่ถือว่า 'วัตถุ' เป็นหน่วยการสร้างพื้นฐานของโปรแกรมหรือระบบคอมพิวเตอร์ ออบเจ็กต์เป็นเอนทิตีซอฟต์แวร์ที่สามารถมีข้อมูล ในรูปแบบของฟิลด์ มักเรียกว่าแอตทริบิวต์ และโค้ดในรูปแบบของโพรซีเดอร์ที่มักเรียกกันว่าเมธอด การเขียนโปรแกรมเชิงวัตถุมุ่งเน้นไปที่ข้อมูลและกฎรอบๆ มากกว่าที่จะเน้นที่ตรรกะขั้นตอนหรือการไหลของการควบคุม ซึ่งเป็นเรื่องปกติในภาษาโปรแกรมต้นๆ OOP เกี่ยวข้องกับข้อมูลโดยรวมมากกว่าที่จะเป็นชุดขององค์ประกอบแต่ละรายการ