IT Group Syria
أخبار:
ادعم الموقع بتحميل شريط أدوات alexa عبر الرابط التالي:
تحميل الشريط
تحتاج لتحميل الشريط من أجل كل متصفح تستعمله وذلك في حال كنت تستعمل أكثر من برنامج تصفح لزيارة موقعنا
 Microsoft Internet Explorer and Mozilla FireFox
 
*
أهلا, زائر. الرجاء الدخول أو التسجيل أيلول 10, 2010, 11:34:13 pm


تسجيل الدخول باسم المستخدم، كلمة المرور و مدة الجلسة


صفحات: [1]   للأسفل
  طباعة  
الكاتب موضوع: C++ Templates  (شوهد 2891 مرات)
0 عضو و 1 زائر يشاهدون هذا الموضوع.
superman
http://acac.wardspace.com
مشرف
***

الشعبية 2
غير متصل غير متصل

الجنس: ذكر
العمر: 25
البلد: بلدي هي بلدي التي حملتني
مشاركات: 126


سبحان الله و بحمده سبحان الله العظيم

muh_acit@hotmail.com MuhacitM muh_acit@yahoo.com
WWW
« في: تشرين الأول 27, 2007, 04:18:12 am »

C++  Templates
هل عملت يوما في احد برامج تصميم صفحات الانترنت ؟!
إذا كنت قد عملت فربما تعاملت مع النماذج مثلا في دريم ويفر يمكنك استخدام النماذج الجاهزة لبناء الموقع أو يمكنك بناء نموذج
و إذا كنت لم تسمع عن النماذج ..فماذا يعني النموذج؟

النموذج أو template هو مفهوم يمكن المبرمج من تصميم خوارزمية لسير العمليات في برنامج ما بغض النظر عن أنماط

المعطيات المستخدمة......يعني نقوم بتعريف نموذج , و نستخدمه في البرنامج مع أي نمط للمعطيات, طبعا بما يناسب العمليات

في الخوارزمية المكتوبة, فعندما نكتب خوارزمية خاصة بالأنماط الرقمية لا يمكن تمرير معطيات محرفية مثلا وهذا للتنبيه فقط

و هذه الفكرة تشبه فكرة التحميل الزائد Overloading  في الOOP لكن هنا يمكن استخدامها في البرمجة الهيكلية

Stuructured Programming

 و يمكن استخدام النماذج في C++ في التوابع Functions و الصفوف Classes :

Template Functions :
و يمكن تسميتها التوابع العامة أو الشاملة generic functions  و الفكرة هي معالجة العمليات بشكل مجرد عن المعطيات
و الشكل العالم لتعريف نموذج التابع كما يلي

template <class AType>
return-type function-name(parameter-list){
   //function body
{

كمثال عليه التابع الخاص بالقيمة المطلقة حيث يمكن فهمه من خلال المثال التالي
*******************************************************************
*******************************************************************
#include <iostream.h>
template <class AnyType>

AnyType abs (AnyType a_number) {
if (a_number < 0)
return -a_number;
else
return a_number;
}
//****************************
// main ()
//****************************
main() {
// Variables of different types
int a = -10;
long b = -567890;
float c = -33.44;
cout << "\ndemonstrating template function abs()\n";
// Passing constants
cout << abs(-22.3) << "\n;
cout << abs(-3) << "\n";
cout << abs(334556) << "\n";
// Passing variables
cout << abs(a) << "\n";
cout << abs(b) << "\n";
cout << abs(c) << "\n";
return 0;
}
****************************************************************
*************************************************************
و يمكن أن نعرف أكثر من نموذج للمعطيات
template <class OneType, class AnotherType>
void Display(OneType x, AnotherType y) {
cout << x << " " << y << "\n";
}

**************************************************************
**************************************************************

أرجو أن تكون الفكرة قد وصلت بشكل مناسب
و عليكم دائما بالتجربة ...جرب ثم جرب ثج جرب حتى تتعلم بشكل جيد


و قد واجهت مشاكل في تنسيق المقالة و أعتذر عن هذا السوء بالتنسيق
سجل

لا تسقني ماء الحياة بذلةٍ.......بل فاسقني بالعز كأس الحنظل
Moayd
عضو مؤسس
*****

الشعبية 2
غير متصل غير متصل

مشاركات: 130



WWW البريد
« رد #1 في: تشرين الأول 27, 2007, 11:36:29 am »

شكرا superman
سجل


MuazWeb
عضو مؤسس
*****

الشعبية 7
غير متصل غير متصل

الجنس: ذكر
العمر: 23
البلد: سوريا
مشاركات: 237


WWW
« رد #2 في: تشرين الأول 29, 2007, 07:54:00 am »

شكراً على طريقة العرض المميزة
سجل
superman
http://acac.wardspace.com
مشرف
***

الشعبية 2
غير متصل غير متصل

الجنس: ذكر
العمر: 25
البلد: بلدي هي بلدي التي حملتني
مشاركات: 126


سبحان الله و بحمده سبحان الله العظيم

muh_acit@hotmail.com MuhacitM muh_acit@yahoo.com
WWW
« رد #3 في: تشرين الأول 29, 2007, 12:30:40 pm »

العفو يا شباب لكن أنا بودي أن تعذروني بسبب الكود السيء لأن التنسيق صعب جدا في كتابة الموضوع
سجل

لا تسقني ماء الحياة بذلةٍ.......بل فاسقني بالعز كأس الحنظل
The Tornado
AbO aL nOoR
عضو مؤسس
*****

الشعبية 10
غير متصل غير متصل

الجنس: ذكر
العمر: 22
البلد: دمشق - سوريا
مشاركات: 375


كن مع الله ولا تبالي

aubada@hotmail.com aubada_87
WWW
« رد #4 في: تشرين الأول 31, 2007, 12:46:12 pm »

شكرا الك superman على الموضوع الجميل
انا من أنصار ++C .. وفعلا إذا الواحد بدو يشتغل على ++C ما الو غنى عن templates
بس بـ java و #C الـ generic collections أقوى بكتير ....

شكرا الك مرة تانية ..
سجل


فكر معي !!!

لو جعلنا الحاسوب يفكر كالإنسان بقدر ما نستطيع ... ألن يصبح العمل أسهل !!! ؟؟؟

"Make me a sandwich"

"What? make it yourself"

"SUDO me a sandwich"

"Yes sir!"
صفحات: [1]   للأعلى
  طباعة  
 
انتقل إلى:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.9 | SMF © 2006, Simple Machines LLC

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM