Volání funkcí (C++)
Operátor volání funkce je při vyvolání pomocí závorek binárním operátorem.
Syntaxe
primary-expression ( expression-list )
Poznámky
V tomto kontextu primary-expression
je prvním operandem a expression-list
případně prázdným seznamem argumentů je druhý operand. Operátor volání funkce se používá pro operace, které vyžadují více parametrů. To funguje, protože expression-list
se jedná o seznam místo jednoho operandu. Operátor volání funkce musí být nestatická členská funkce.
Operátor volání funkce nemění v případě přetížení způsob, jakým jsou funkce volány. Místo toho upravuje, jak se operátor interpretuje při použití na objekty daného typu třídy. Například následující kód by obvykle neměl význam:
Point pt;
pt( 3, 2 );
Vzhledem k odpovídajícímu přetíženým operátoru volání funkce lze tuto syntaxi použít k posunu x
souřadnic 3 jednotek a y
souřadnic 2 jednotek. Následující kód ukazuje takovou definici:
// function_call.cpp
class Point
{
public:
Point() { _x = _y = 0; }
Point &operator()( int dx, int dy )
{ _x += dx; _y += dy; return *this; }
private:
int _x, _y;
};
int main()
{
Point pt;
pt( 3, 2 );
}
Je třeba poznamenat, že operátor volání funkce je použit na název objektu, nikoli na název funkce.
Operátor volání funkce můžete také přetížit pomocí ukazatele na funkci (nikoli samotné funkce).
typedef void(*ptf)();
void func()
{
}
struct S
{
operator ptf()
{
return func;
}
};
int main()
{
S s;
s();//operates as s.operator ptf()()
}
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro