16-10-2014, 08:12 AM
إقتباس :ستحتاج الى أن تكون على علم بالتقنيات التالية :هذه تريد ليلة من ليال الشتاء الطويلة
- Generics & Collections
- OOP
- RTTI
خذلك أولا قهوة ثقيلة ..
ثم توكل على الله ..
ثم اطلع على هذا الرابط :

الف شكر لك وعلى تعاونك

--------------------------------------
إقتباس :السلام عليكمفعلاً هذه كانت نظرتي وتوقعي للامر
عندما تقوم بانشاء اوبجكت من كلاس فان هدا الأبجكت يشغل مساحة من الداكرة ولنسخ الأوبجكت يكفي معرفة المساحة التي يشغلها انظر المثال كتبته بشكل سريع
لكن فكرت بالامر أكثر وتذكرت ان وبجكت يمكن ان يحتوي على على اوبجكت آخر
مثال عملي :
PHP كود :
type
TMyClass = Class
Name: string; // in your way .. this value will be copied fine because it's value
Age: integer; // same here
Address: string;
PhoneNumbers: TStringList; // this will be the problem .. when you copy it you just copy the pointer for it
// so if the obj1 Freed the obj2 will lose its PhoneNumbers pointer because it
// belong to obj1
end;
فإذا اردت ان اقوم بنسخ حقيقي سيتطلب الامر ان اعرف عنوان الوبجكت الذي أريـ ـد نسخه ثم اقوم بنسخ للذاكرة الاوبجكت
وبعد ذلك اتأكد هل البيانات التي تم نسخها هي قيم(Values) ام مؤشرات(Pointers) إذا كانت مؤشرات
اقوم بنسخ المكان الذي يشير إليه هذا المؤشر ثم أتاكد من البيانات التي نسختها هل تشير إلى مؤشرات آخرى ام لا ...وعلى هذا المنوال الغير محكم فربما تحدث اخطا ..إلخ
طبعاً كل هذه هي توقعات نظرية ولم اطبق اين منها