چند ريختی يا 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 تابع سومی اجرا ميشود و مقدار ۹۸ را بر می گرداند.


توابع مجازی
ارث بری کلاسها ( مشتق کردن کلاسی از کلاس دیگر )
چند ريختی Polymorphism
سازنده ها و مخربها در يک کلاس
سطح دسترسی در کلاسها
کلاس چیست ؟include