C++ में यह कंपाइल-टाइम पॉलीमॉर्फिज्म का समर्थन करता है। कंपाइल-टाइम पॉलीमॉर्फिज्म के उदाहरण फंक्शन ओवरलोडिंग और ऑपरेटर ओवरलोडिंग हैं।
ऑपरेटर ओवरलोडिंग के लिए कुछ नियम हैं। ये नियम इस तरह हैं
केवल बिल्ट-इन ऑपरेटर्स को ओवरलोड किया जा सकता है। यदि C++ में कुछ ऑपरेटर्स मौजूद नहीं हैं, तो हम उन्हें ओवरलोड नहीं कर सकते।
ऑपरेटर्स की ऐरिटी नहीं बदली जा सकती
ऑपरेटर्स की प्रीसिडेंस समान रहती है।
ओवरलोडेड ऑपरेटर फंक्शन कॉल ऑपरेटर "()" को छोड़कर डिफ़ॉल्ट पैरामीटर्स नहीं रख सकता।
हम बिल्ट-इन डेटा टाइप्स के लिए ऑपरेटर्स ओवरलोड नहीं कर सकते। कम से कम एक उपयोगकर्ता-परिभाषित डेटा टाइप होना चाहिए।
असाइनमेंट "=", सबस्क्रिप्ट "[]", फंक्शन कॉल "()" और एरो ऑपरेटर "->" इन ऑपरेटर्स को मेंबर फंक्शन के रूप में परिभाषित किया जाना चाहिए, फ्रेंड फंक्शन के रूप में नहीं।
असाइनमेंट "=", एड्रेस "&" और कॉमा "," जैसे कुछ ऑपरेटर्स डिफ़ॉल्ट रूप से ओवरलोडेड होते हैं।