برنامه نویسی و IT

کاربرد Constructor c++ چیست

Constructor c++ چیست

سازنده یا  Constructor c++  روش خاصی است که هنگام ایجاد یک شی از کلاس به طور خودکار فراخوانی می شود. برای ایجاد یک سازنده یا constructor c++ از همان نام کلاس و سپس () استفاده می‌شود. برای اینکه مفهوم Constructor c++ چیست را مشخص کنیم این مطلب را در اختیار شما قرار می‌دهیم.  به مثال زیر توجه نمایید:

 

ویدیو پییشنهادی : آموزش برنامه‌نویسی C++
آموزش برنامه‌نویسی C++
 class MyClass {     // The class

  public:           // Access specifier

    MyClass() {     // Constructor

      cout << "Hello World!";

    }

};




int main() {

  MyClass myObj;    // Create an object of MyClass (this will call the constructor)

  return 0;

}

 

خروجی این چند خط برنامه Hello World! است. همان عباراتی که در وسط برنامه نوشته شده است. با توجه به این مثال متوجه شدیم که سازنده پیش فرض یا constructor c همان نام کلاس را دارد و همیشه حالت عمومی داشته و هیچ مقدار خروجی و بازگشتی ندارد. در ادامه به پارامترهای یک constructor c++ اشاره می‌نماییم.

 

Constructor c++ چیست

پارامترهای constructor c++ چیست

سازنده پیش فرض یا constructor c که حتی برخی اوقات آن را default constructor در c++ می‌نامند، دقیقا مانند توابع می‌تواند پارامترهایی را بگیرد که این پارامترها برای تنظیم مقادیر اولیه و ویژگی‌های مرتبط با آنها مفید خواهند بود.

 

ویدیو پییشنهادی: اصول برنامه نویسی C و ++C
اصول برنامه نویسی C و ++C

 

در کلاس زیر که شامل برند، مدل و سال است، یک سازنده پیش فرض با پارامترهای مختلف وجود دارد. در داخل سازنده پیش فرض، صفات را برابر با پارامترهای سازنده قرار می‌دهیم. مثلا برند = x . وقتی سازنده پیش فرض یا constructor c++ فراخوانی می‌شود، مقادیر پارامترها به سازنده منتقل می‌شود. به مثال زیر توجه نمایید:

 

class Car {        // The class

  public:          // Access specifier

    string brand;  // Attribute

    string model;  // Attribute

    int year;      // Attribute

    Car(string x, string y, int z) { // Constructor with parameters

      brand = x;

      model = y;

      year = z;

    }

};




int main() {

  // Create Car objects and call the constructor with different values

  Car carObj1("BMW", "X5", 1999);

  Car carObj2("Ford", "Mustang", 1969);




  // Print values

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}

 

خروجی این برنامه عبارت است از:

  1. BMW X5 1999
  2. Ford Mustang 1969

خروجی شامل برند خودرو، مدل و سال ساخت می باشد.

دقیقا مانند توابع، سازنده های پیش فرض را می‌توان خارج از کلاس نیز تعریف کرد. ابتدا باید در داخل کلاس سازنده را معرفی نمود و سپس در خارج کلاس با مشخص نمودن نام کلاس فراخوانی و خروجی برنامه را دریافت کرد. به مثال زیر که متن دیگری از مثال قبل است دقت نمایید:

 

class Car {        // The class

  public:          // Access specifier

    string brand;  // Attribute

    string model;  // Attribute

    int year;      // Attribute

    Car(string x, string y, int z); // Constructor declaration

};




// Constructor definition outside the class

Car::Car(string x, string y, int z) {

  brand = x;

  model = y;

  year = z;

}




int main() {

  // Create Car objects and call the constructor with different values

  Car carObj1("BMW", "X5", 1999);

  Car carObj2("Ford", "Mustang", 1969);




  // Print values

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}

 

در این برنامه خروجی تغییر ننموده است بلکه ساختار کدنویسی همان‌طور که گفته شد متفاوت طراحی شده است.

انواع constructor c++

سازنده‌ها در c++ در سه قالب پیش فرض، پارامتری یا کپی وجود دارند. سازنده پیش فرض یا constructor c یا به تعبیر دیگر default constructor در c++ بخشی از برنامه شامل نام کلاس است که با () خاتمه می‌پذیرد. در حالت پارامتری سازنده‌ها، مقادیر پارامتر در داخل پرانتز وارد می‌شود. در حالت سازنده copy constructor نیز از یک قالب کپی شده قبلی استفاده می‌شود. به تصویر زیر توجه نمایید.

 

انواع constructor c++

انواع پیش فرض در c++

برای هر کدام از برنامه‌های مبتنی بر سازنده‌ها مثالی می‌زنیم.

 

 

حالت اول، default : در این حالت سازنده فاقد آرگومان و ورودی است.

 

// Cpp program to illustrate the 

// concept of Constructors 

#include <iostream> 

using namespace std; 

  

class construct { 

public: 

    int a, b; 

  

    // Default Constructor 

    construct() 

    { 

        a = 10; 

        b = 20; 

    } 

}; 

  

int main() 

{ 

    // Default constructor called automatically 

    // when the object is created 

    construct c; 

    cout << "a: " << c.a << endl 

         << "b: " << c.b; 

    return 1; 

	}

 

حالت دوم، پارامتری: در این حالت آرگومان‌ها و ورودی‌ها داخل پرانتز وارد شده‌اند.

 

// CPP program to illustrate 

// parameterized constructors 

#include <iostream> 

using namespace std; 

  

class Point { 

private: 

    int x, y; 

  

public: 

    // Parameterized Constructor 

    Point(int x1, int y1) 

    { 

        x = x1; 

        y = y1; 

    } 

  

    int getX() 

    { 

        return x; 

    } 

    int getY() 

    { 

        return y; 

    } 

}; 

  

int main() 

{ 

    // Constructor called 

    Point p1(10, 15); 

  

    // Access values assigned by constructor 

    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY(); 

  

    return 0; 

}

 

حالت سوم، کپی : در این برنامه کپی از یک کلاس به عنوان آرگومان یک سازنده وارد شده است.

 

// Illustration 

#include "iostream" 

using namespace std; 

  

class point { 

private: 

  double x, y; 

  

public: 

  // Non-default Constructor & default Constructor 

  point (double px, double py) { 

    x = px, y = py; 

  } 

}; 

  

int main(void) { 

  // Define an array of size 10 & of type point 

  // This line will cause error 

  point a[10]; 

  

  // Remove above line and program will compile without error 

  point b = point(5, 6); 

}

 

این مطالب تمام آن چیزی بود که با مثالهای متعدد در خصوص Constructor c++ چیست لازم بود تا بدانیم. با مکتوب همراه باشید تا اطلاعات بیشتری در خصوص نکات مرتبط با موضوعات برنامه نویسی در اختیار شما علاقه‌مندان قرار دهد.

 

 

با توجه به نکاتی که اشاره شد می‌توانید خروجی پروژه‌های پایانی را استخراج نمایید و با جایگزینی مطالب مشابه در کدهای معرفی شده بالا، تمرین برنامه نویسی داشته باشید. با ما همراه باشید تا با دنیای جذاب برنامه‌نویسی بیشتر آشنا و همراه شوید.

سعید هابطی

چند سالی میشه که در زمینه سئو و دیجیتال مارکتینگ در حال فعالیت هستم. به موسیقی و فلسفه علاقه ی خاصی دارم و بیشتر زمان رو صرف مطالعه و نوازندگی می کنم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا