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

كيف يتم إنشاء مصفوفة من صف ضمن صف آخر

بدأه Xacker في 18 مارس 2009 · 3 رد · 492 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

قمت بإنشاء class بالشكل التالي

 

[color= #007f00;]#include 	<iostream>

[color= #007f00;]#include		<vector>

 

[color= #0000ff;]class Class1 [color= #000000;]{

	[color= #0000ff;]int x;

	[color= #0000ff;]int y;

	[color= #0000ff;]int z;

[color= #000000;]};

 

[color= #0000ff;]class Class2 [color= #000000;]{

	std[color= #000000;]::[color= #808000;]vector[color= #000000;]<Class1[color= #000000;]> X[color= #000000;]([color= #ff0000;]300[color= #000000;]);

[color= #000000;]};

أود إنشاء مصفوفة من الصف الأول حجمها 300 مثلاً، في الطريقة التي استخدمتها في الأعلى أحصل على خطأ، لم أعرف السبب

error C2059: syntax error : 'constant'

ماذا أفعل :(

شكراً

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2
xacker.rar

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#3

السلام عليكم :)

انظر يا صديقي X ......

الـ Constructor ليس هو نفسه الـ Initializer :S

انظر معي للنسخة المعدلة :

class Class1{

	int x;
	int y;
	int z;
};

class Class2{ 

	std::vector<Class1> X;

public:
	Class2(): X(300){};
	int sz() { return X.size(); };
};

int main(){

	Class2 test;
	std::cout << test.sz();

	return 0;
}

هل ترى هذا السطر ::

Class2(): X(300){};

ما بعد النقطتين, هنا يمكن تطبيق ما تريده :)

تخيل أنك تريد إعادة كتابة المتغير و لكن باستخدام الـ Constructor الذي تريده, عندما أردنا ثلاثمئة عنصر عند بناء الـ Vector :

X(300)

أما Constructor Body فهو ليس لتهيئة قيم المتغيرات بل لتطبيق عملية معينة على بيانات الكائن,

على العموم لا تشغل بالك, يمكنك كتابة التالي, في الـ Constructor Body:

Class2() {
	X.resize(300);
};

و لكن لاحظ أن الـ Default Constructor للكائن X قد تم تنفيذه بالفعل, لأننا لم نقم بتهيئة الكائن X عندما يتم إنشاء الصنف Class2 :)

أذكر أني شاركت بموضع و فصلت في الموضوع قليلاً, سأبحث عنه و أحضره لك :)

تحياتي ,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 18 مارس 2009 في 20:37

#4

شكراً fkugd2003، Khaled.Alshaya

شكراً جزيلاً

هذه ضريبة أني لم أعد أراكما online :D

نعم الفكرة أصبحت واضحة

لو وجدت هذا الموضوع يا خالد لا تنساني من رابط له :)

تحياتي لكما.

تم تعديل هذه المشاركة بواسطة Xacker في 19 مارس 2009 في 04:16

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…