Quina diferència hi ha entre la sobrecàrrega de funcions i l’operador?


Resposta 1:

Una funció és un fragment de codi al qual podeu trucar una i altra vegada, com ara un procediment o una rutina. Aquests són alguns dels noms anteriors per a conceptes similars. Diguem que dirigiu una botiga i que cada nit heu inventat. Podeu emmagatzemar els blocs de codi encarregats d’inventar en una funció. Ara, diguem que obriu una altra botiga que funciona de manera diferent. Però, encara cal fer inventari, però al matí. En lloc de reescriure tota la base de codi per gestionar la botiga, només cal reescriure les parts que cal canviar. Aquesta és la funció de sobrecàrrega. Simplement substituiríeu la funció d'inventari original per una de més adequada a la implementació del vostre segon magatzem.

La sobrecàrrega dels operadors és un concepte més específic per a certs llenguatges de programació. Defineix com s’han d’interpretar els operadors (definits per a aquest idioma). Els operadors comuns de C ++ són "+, -, *, /, >>, <<, ==,! =, &, &&, |, ||".

Suposo que saps què signifiquen? Podeu afegir números, de manera que per a nombres enters a, i b, podeu escriure c = a + b. Però, i si teniu el vostre propi objecte anomenat fracció. I voleu afegir-los. Els llenguatges de programació com java no proporcionen cap facilitat per utilitzar l'operador + amb aquests objectes. Hauríeu de definir un mètode anomenat add () que us serveixi per vosaltres.

A C ++, podeu encapsular la lògica d'aquesta funció en un mètode especial que sobrecarrega l'operador + de tal manera que quan C ++ veu que intenteu afegir dos objectes de fracció, invoca la funció que heu definit per a aquest operador. Això és útil per tenir una sintaxi més neta.

Podeu pensar en la sobrecàrrega d'operadors com un cas especial de sobrecàrrega de funcions, ja que simplement sobrevalideu el comportament predeterminat d'un operador. Per tant, en lloc de trucar a la funció que normalment trucaria (per defecte res), associes l'operador a la teva pròpia funció personalitzada.