پارامترهای سازنده(Constructor Parameters)

سازندگان همچنین می‌توانند پارامترهایی را (درست مانند توابع معمولی) بگیرند که می‌تواند
برای تنظیم مقادیر اولیه برای ویژگی ها مفید است.


کلاس زیر دارای مارک، مدل و سال هستند ویژگی های و سازنده با
پارامترهای مختلف در داخل سازنده، صفات را برابر با the قرار می دهیم
پارامترهای سازنده (brand=x و غیره). وقتی سازنده را صدا می زنیم
(با ایجاد یک شی از کلاس)، پارامترهایی را به سازنده ارسال می کنیم که مقدار of را تعیین می کند
ویژگی های مربوط به همان:



مثال



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;
}





درست مانند توابع، سازنده ها نیز می توانند خارج از کلاس تعریف شوند.
ابتدا سازنده را در داخل کلاس تعریف کنید و سپس آن را خارج از کلاس تعریف کنید
کلاس با مشخص کردن نام کلاس و سپس وضوح محدوده ::
عملگر و به دنبال آن نام سازنده (که همان
کلاس):



مثال



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;
}