مواقع أخرى
الأخبار
BBC عربي
CNN عربي
الصحف
الجامعات
جامعة الملك سعود
جامعة الملك عبد العزيز
الرياضة
الدوال الخطية:-
Inline Function
كما نعلم أن لغة C++ تسمح باستخدام الدالة الخطية Inline Function والتي تعمل بحد ذاتها على تقليل وقت تنفيذ البرنامج وبالتالي هذا يؤثر على سرعة التنفيذ حيث كما تعلمنا في C++ بان استخدام Inline لا يتطلب أماكن جديدة في الذاكرة مما يقلل من وقت الترجمة (استهلاك وقت الحاسب).
أعلى
ونذكر بان استخدام Inline في C++ كما في البرنامج التالي:-
#include<iostream.h>
#include<conio.h>
inline int cube(int a)
{
return a*a*a;
}
main( )
int i;
for(i=1;i<=5;i++)
cout<<cube(i)<<"\n";
getch( );
بنفس الأسلوب يمكن استخدام هذا المفهوم في الأصناف حيث:
1. أن أي داله يتم الإعلان عنها داخل الصنف يتم التعامل معها من قبل المترجم على أنها خطية ماعدا الدوال الكبيرة فيعتمدها المترجم على أنها عادية.
2. الدوال الخطية هي عبارة عن دوال بحجم صغير تساعد في تسريع تنفيذ البرنامج
3. يقوم المترجم بكتابة تفاصيل الدالة في كل موضع يظهر فيه استدعاء لهذه الدالة مما يزيد من سرعة تنفيذ البرنامج وذلك بتقليل زمن الذهاب والرجوع عند استدعاء الدالة
4. كل داله تكتب تفاصيلها داخل الصنف يتم اعتمادها من قبل المترجم كداله خطيه ما لم تكن الدالة تحوي أوامر كثيرة أو حلقات تكرارية
مثال 1 :-
class xy
private:
int g;
public :
void set (int x)
g = x ;
};
لاحظ :-
الدالة set تعتبر خطية لسببين:
1- تم الإعلان عنها داخل الصنف
2- أن تعليماتها قليلة وليس بها حلقات تكرارية
ملاحظة:-
إذا كتبت تفاصيل الدالة خارج الصنف لابد من إضافة الكلمة المحجوزة inline إلى الدالة حتى تعتبر داله خطيه .
void set (int);
inline void xy :: set(int x)
مثال 2 :-
class samp
int i,j,k ;
public:
samp (int a, int b)
i = a ;
j = b ;
int divisible ( );
inline int samp :: divisible ( )
k = ! ( i % j ) ;
return k ;
int x,y;
cout<<"enter x and y \n";
cin>>x>>y;
samp s(x,y);
if (s. divisible ( ))
cout <<x<<"divided by"<<y<<"\n" ;
else
cout <<x<<" is not divided by"<<y<<"\n" ;
الوحدة التالية >>
جميع الحقوق محفوظة © 2006