چند ريختی يا Polymorphism يکی از خواص جالب در ++C محسوب ميشه .
شما نمی تونيد توابعی با اسامی يکسان داشته باشيد مگر در يک حالت استثناء اون هم مسئله چند ريختی هستش .
يعنی چند تابع مختلف با يک اسم يکسان تعريف می کنيد اما بايد دقت داشته باشيد که در مقادير ورودی توابع متفاوت باشند .
مثال :
}(void set(int a
; int b
;b=a
}
*************
}(void set(float s
; float m
;m=s
}
*************
}(int set(int f,int g
; int j,k
;j=f
;k=g
; return k+j
}
*************
در مثالهای بالا دقت کنيد که اسم توابع يکسان است و تنها در موقع صدا زدن آنها با توجه به نوع ورودی تابع , تابع مورد نظر اجرا می شود .
مثال :
اگر بنويسيم ;(set (1 تابع اولی اجرا ميشود
اگر بنويسيم ;(set (5.1 تابع دومی اجرا ميشود
اگر بنويسيم ;(set (90, 8 تابع سومی اجرا ميشود و مقدار ۹۸ را بر می گرداند.
شما نمی تونيد توابعی با اسامی يکسان داشته باشيد مگر در يک حالت استثناء اون هم مسئله چند ريختی هستش .
يعنی چند تابع مختلف با يک اسم يکسان تعريف می کنيد اما بايد دقت داشته باشيد که در مقادير ورودی توابع متفاوت باشند .
مثال :
}(void set(int a
; int b
;b=a
}
*************
}(void set(float s
; float m
;m=s
}
*************
}(int set(int f,int g
; int j,k
;j=f
;k=g
; return k+j
}
*************
در مثالهای بالا دقت کنيد که اسم توابع يکسان است و تنها در موقع صدا زدن آنها با توجه به نوع ورودی تابع , تابع مورد نظر اجرا می شود .
مثال :
اگر بنويسيم ;(set (1 تابع اولی اجرا ميشود
اگر بنويسيم ;(set (5.1 تابع دومی اجرا ميشود
اگر بنويسيم ;(set (90, 8 تابع سومی اجرا ميشود و مقدار ۹۸ را بر می گرداند.