Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Funzioni static

    Ciao a tutti,

    mi potreste spiegare come mai si dichiarano le funzioni static?

    Io credo che il perchè risieda nel fatto che queste funzioni siano deputate ad accedere a dei dati dichiarati come static,
    però dopo ore che sono su sto capitolo ho le idee molto confuse...

    Se qualcuno può confermare o chiarire tanto meglio!!

    Saluti!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C++] Funzioni static

    Originariamente inviato da UltraBeginner
    mi potreste spiegare come mai si dichiarano le funzioni static?
    La parola chiave static si applica a variabili e funzioni. Il significato dipende da dove viene usata.
    Per le variabili locali (dentro le funzioni/blocchi) lo static impone una durata fissa alla variabile. Per le variabili globali (esterne a funzioni) e per le funzioni lo static impone un linkage "interno", ossia la variabile/funzione non è visibile da altri file sorgente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Lo specificatore static serve anche per definire variabili di classe.

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Originariamente inviato da keratox
    Lo specificatore static serve anche per definire variabili di classe.
    che vengono però condivise da tutte le istanze della classe.
    Hai dimenticato di scriverlo.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Originariamente inviato da XWolverineX
    che vengono però condivise da tutte le istanze della classe.
    Hai dimenticato di scriverlo.
    si, in pratica se dichiaro una variabile static all interno di una classe, questa sara comune a tutti gli oggetti istanziati, correggetemi se sbaglio.

    Per quanto detto da AndBin invece, sempre se ho capito bene, se dichiaro una funzione static essa sara visibile solo nel file .cpp dove l'ho appunto definita. Se invece definisco la funzione static in un file .h essa dovrebbe essere visibile in ogni file dove includo il file header.

    Spero di aver capito!!

    Saluti a tutti!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da UltraBeginner
    Per quanto detto da AndBin invece, sempre se ho capito bene, se dichiaro una funzione static essa sara visibile solo nel file .cpp dove l'ho appunto definita. Se invece definisco la funzione static in un file .h essa dovrebbe essere visibile in ogni file dove includo il file header.
    No. Innanzitutto sebbene nel titolo hai messo C++, io ho spiegato lo static "alla C", non ho pensato di descrivere gli altri usi di static per il C++.

    Comunque nei file di header non si mettono mai definizioni (di variabili o funzioni). Le definizioni vanno messe nei sorgenti veri e propri. Se una variabile/funzione è static, il compilatore non inserirà il nome nel file oggetto ed è per tale motivo che il linker non "vedrà" la variabile/funzione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.