اکثر زبان های برنامه نویسی برنامه نویس را ملزم می کنند برای هر تابع نام منحصر بفردی را تعریف کنند. ویژگی چندریختی (polymorphism) در زبان ++C این امکان را فراهم کرده که یک نام برای بیش از یک تابع به طور مشترک استفاده شود. این عمل سربارگذاری (function overloading)توابع هم نامیده می شود. برای اینکه کامپایلر توابع هم نام را از هم تشخیص دهد نوع و تعداد پارامترهای توابع باید با هم متقاوت باشد. کامپایلر از نوع آرگومان متوجه می شود کدام تابع فراخوانی شده است.