الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نداء ال constructor فى for loop

مغلق
بدأه maro009 في 20 أبريل 2005 · 5 رد · 628 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كيف يمكننى ان انادى ال constructor فى for loop

مثال

لو عندى 
class Cat
{
private:
...
...
..
public:
Cat();// defualt constructor................ (1)
Cat(int,int,float)// constructor with parameters..........(2)
.....
....
...
}

int main()

{
Cat *sisters;// creat array of Objects;
for (int i=0; i<3;i++)
{
هنا اريد ان انادى defualt constructor و  constructor with parameters
كيف
}
}
#2

عموما المشيد " Constructor" يتم إستدعاءه بشكل عادي وقت إنشاء الكائن , يعني :

main()

Cat * sisters;

for(int q=0;q<10;q++)
sisters = new Cat;

في سطر New ستم إستدعاء المشيد الذي ليس له بارمترات بشكل مباشر ,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

لاحظ أنك عند إستخدامك للـ Constructor ستقوم ببناء Object جديد .. من نفس الـClass :)

#4

تستطيع ان تنادي الـ default contructor من داخل الـconstructor with parameters على ما أظن:

#include <iostream>
using namespace std;
    
class Cat
{
public:
    Cat()
    {
        cout << "default contructor" << endl;
        m = 0;
    }

    Cat(int a)
    {
        Cat();	//calling default contructor from inside the constructo wirh parameters

        cout << "constructor with parameters" << endl;
        m = a;
    }
private:
    int m;
};

int main()
{
    Cat x(2);
}
#5

اخى hasan_aljudy لم أقصد هذا

كل ما اريده هو ندا الcontructor داخل for loop

فمثلا

فى ال main

for (int i=0; i<5;i++)
{
اذا اردت ان انادى اى member function داخل هذا loop سيكون هكذا:
sisters.getname()
او
sisters->set(name

فما هى الطريقه لستدعاء ال contructor داخل هذا الloop 
}
#6

لا تستطيع, الكونستركتر فنكشن خاص, لا يستدعى الا ساعة إنشاء الكائن.

تستطيع نسخ الكود في الكونستركتر الى فنكشن آخر, ثم استدعاء ذلك الفنكشن. (و اذا عملت ذلك فمن الأفضل أيضا مسح الكد من الكونستركتر و استبدالها باستدعاء لذلك الفنكشن)

هذا الموضوع مغلق.

مواضيع مشابهة