ตัวสร้างพารามิเตอร์ใน 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++ จากนั้นจึงเป็นไปได้ที่จะส่งข้อโต้แย้งไปยังวัตถุนั้น ขั้นตอนคล้ายกับการส่งค่าไปยังฟังก์ชัน มันยังมีความคล้ายคลึงกับการส่งผ่านค่าพารามิเตอร์ไปยังอ็อบเจ็กต์

ออบเจ็กต์ที่กำหนดไว้ในเนื้อหาของคอนสตรัคเตอร์จะเริ่มต้นโดยใช้พารามิเตอร์ ค่าควรถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันคอนสตรัคเตอร์เมื่อใดก็ตามที่มีการประกาศคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ ตัวสร้างเหล่านี้สามารถเรียกได้ทั้งโดยชัดแจ้งหรือโดยปริยาย วิธีการประกาศวัตถุแบบเดิมไม่ทำงาน

หมายเหตุ: ประเภทของการโทร-

  1. การโทรที่ชัดเจน - ตัวอย่าง e1= ตัวอย่าง (0,10)
  2. การโทรโดยนัย - ตัวอย่าง 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 เกี่ยวข้องกับข้อมูลโดยรวมมากกว่าที่จะเป็นชุดขององค์ประกอบแต่ละรายการ