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

    [C++] Interpretazione di un prototipo

    Salve, vorrei chiedervi un aiuto nell'interpretazione di un prototipo

    inline Struttura& Matrix::SetEl(int index, double val)
    { ..codice..
    }

    Io ho interpretato così:

    Il codice che segue è relativo al metodo SetEl della classe Matrix, tale metodo prende in input un intero e un double e restituisce un ???? "Struttura&" non saprei come interpretarlo, così come "inline"...

    Grazie 1000

  2. #2
    una funzione inline non è una vera e propria funzione, ossia il suo codice viene sostituito alla sua chiamata, dal compilatore ....
    Experience is what you get when you don’t get what you want

  3. #3

    Re: [C++] Interpretazione di un prototipo

    Originariamente inviato da GraficInside
    "Struttura&" non saprei come interpretarlo
    è un riferimento a Struttura. Studiati i riferimenti (praticamente sono una scorciatoia sintattica per i puntatori)
    Originariamente inviato da GraficInside così come "inline"...
    E' un suggerimento al compilatore: se puoi, anzichè effettuare una chiamata a funzione, sostituisci alla chiamata, il codice inline della funzione stessa, un po' come se fosse una macro, in modo da evitare, l'overhead di chiamata a funzione, ma con controllo sui tipi ecc...
    Talvolta, in certe situazioni (ad esempio ricorsività, od utilizzo dell'indirizzo della funzione stessa), il compilatore non è in grado di "inleanizzare" la chiamata, quindi la chiama come se non fosse "inline": in tali casi, se è attivata opportunamente l'opzione di warning del compilatore, viene generato un apposito warning.
    In alcune ottimizzazioni, l'"inleanizzazione" viene effettuata anche senza il suggerimento "inline".
    Logicamente, il fatto che la funzione (che è logicamente una funzione) sia "inleanizzata" o no dal compilatore, non cambia (o perlomeno non dovrebbe cambiare), la semantica del programma.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.