1 – Funktionsüberlastung
Die Hauptfunktion kann nicht überladen werden;
Die überladenen Funktionen unterscheiden sich in der Anzahl oder Art der formalen Parameter ;
Zwei Funktionen dürfen mit Ausnahme des Rückgabetyps nicht alle gleichen Elemente haben (d. h. eine Funktionsüberladung lässt nicht zu, dass nur der Rückgabetyp unterschiedlich ist);
Wenn es sich bei dem formalen Parameter um einen bestimmten Zeiger- oder Referenztyp handelt , kann eine Funktionsüberladung erreicht werden , indem unterschieden wird, ob er auf ein konstantes Objekt oder ein nicht konstantes Objekt zeigt .
Record lookup(Account *); // 函数作用于 Account 的引用
Record lookup(const Account&); // 重载函数,作用于常量引用
2 – Inline-Funktion
Inline-Funktionen können den Overhead von Funktionsaufrufen vermeiden; eine Funktion als Inline-Funktion angeben, und der Compiler erweitert sie an jedem Aufrufpunkt, indem er den Overhead von Funktionsaufrufen vermeidet;
Verwenden Sie das Schlüsselwort inline , um eine Inline-Funktion zu deklarieren.
Eine constexpr-Funktion bezieht sich auf eine Funktion, die für konstante Ausdrücke verwendet werden kann. Ihr Rückgabetyp und alle formalen Parametertypen sind Literalwerttypen . Es darf nur eine Rückgabeanweisung im Funktionskörper geben.
Wenn die constexpr-Funktion initialisiert wird, ersetzt der Compiler den Aufruf der constexpr-Funktion durch ihren Ergebniswert und konvertiert ihn implizit in eine Inline-Funktion .