Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 24 di 93
  • livello avanzato
Indice lezioni

Metodi statici

Imparare cosa sono e a cosa servono i metodi statici in C++, tramite un esempio di utilizzo pratico che ne mostra la sintassi.
Imparare cosa sono e a cosa servono i metodi statici in C++, tramite un esempio di utilizzo pratico che ne mostra la sintassi.
Link copiato negli appunti

Le funzioni membro statiche sono particolari metodi che possono essere invocati senza la necessità di istanziare un oggetto della classe di appartenenza. Per questo motivo, spesso si dice che i metodi statici appartengono alla classe e non alle sue istanze.

Quest'ultima affermazione trova riscontro nell'effetto che il qualificatore static ha sul ciclo di vita (storage duration) dell'entità cui viene applicata, cioè membri di classe o in generale, variabili locali o globali. Un'entità statica in C++ viene infatti istanziata all'inizio del programma e persiste fino alla sua terminazione. I membri statici di una classe pertanto esistono nella memoria del nostro programma anche se non è stato istanziato nessun oggetto, e salvo casi particolari, la loro locazione di memoria è unicamente definita e condivisa da tutte le istanze della classe. Questa particolarità ha come effetto il fatto che all'interno dei metodi statici si può far riferimento a soli membri statici di classe.

Il listato seguente riporta un'implementazione alternativa della classe SimpleMath che usa il qualificatore static:

// simplemath.h
class SimpleMath
{
public:
static int sum(int a, int b);
};
// simplemath.cpp
int SimpleMath::sum(int a, int b)
{
return (a + b);
}
// main.cpp
#include <iostream>
#include "simplemath.h"
int main()
{
std::cout << SimpleMath::sum(2, 3) << std::endl;
return 0;
}

I dati membro o le funzioni membro statiche di una classe sono accessibili mediante l'uso dell'operatore di scope :: oppure tramite l'operatore punto o freccia applicato ad un oggetto. Si noti che la il qualificatore static appare nella dichirazione della funzione membro, ma non nella sua definizione. Nulla vieta che i metodi statici siano inline, ma vista la loro peculiarità non possono essere const.


Ti consigliamo anche