Affermare C ++

Affermare C ++
Il linguaggio C ++ è uscito con dichiarazioni di asserzione per aiutare i programmatori a controllare le condizioni o le dichiarazioni che possono essere logicamente errate. All'interno di questo articolo di C ++ oggi, useremo la dichiarazione "Assert" nei nostri esempi per illustrare il suo lavoro sul lancio di errori se c'è qualche problema logico. Se stai cercando un aiuto per il debug di tali dichiarazioni, sei fortunato ad avere questo articolo. Iniziamo il nostro nuovo articolo C ++ aprendo l'applicazione della console Shell di Ubuntu 20.04 Sistema con scorciatoia chiave "Ctrl+Alt+T".

Creerai un nuovo file C ++ nel tuo terminale. Questo deve essere fatto usando la query "tocco" all'interno della shell. Pertanto, la query utilizzata a questo scopo è stata visualizzata nell'immagine sottostante.

Ora, il file viene inserito nell'esploratore dei file home del sistema Linux. Dobbiamo aprire questo file C ++ all'interno di uno dei nostri redattori installati, i.e., vim, testo o nano. Quindi, a questo scopo abbiamo scelto l'editor GNU Nano. Il comando per aprire questo nuovo file è mostrato di seguito.

Esempio 01

Cominciamo con il primo esempio di utilizzo dell'istruzione Assert nel codice C ++ per convalidare la logica di alcune istruzioni di codice. Abbiamo avviato il codice con i file di intestazione. L'aggiunta di un'intestazione del flusso di input-output è necessaria quando si lavora all'interno della piattaforma C ++. Lo spazio dei nomi standard è un must in C ++ con la parola chiave "usando" e "std" in esso, come puoi vedere anche dall'immagine. Per l'utente dell'istruzione "Assert", dobbiamo aggiungere il file di intestazione di Assert per renderlo funzionale. Quindi, abbiamo aggiunto il "Affermazione.File di intestazione H "con la parola chiave" #include ". Il metodo principale () è stato iniziato a eseguire l'esecuzione.

Abbiamo inizializzato una variabile intera denominata "val" con un valore di 13. Nella prossima riga consecutiva, la variabile "val" è stata sovrascritta con un altro valore di 15. L'istruzione Assert è stata utilizzata successivamente per verificare se la variabile "val" è uguale al valore 13. Poiché è logicamente errato e la variabile "val" è stata sovrascritta dal valore 15, lancerà un'eccezione. Salviamo il codice dopo il completamento di una funzione principale () con "ctrl+s". Dopo aver salvato, dobbiamo tornare al terminale per scopi di compilazione e esecuzione con "Ctrl+X".

Per la compilazione del codice C ++, è necessario aver bisogno di un compilatore configurato nel tuo Ubuntu 20.04 Sistema. Pertanto, abbiamo usato l'istruzione di compilazione G ++ nella shell per compilare il file "Affermare.CC ". La compilation non restituisce nulla in cambio ci sta chiarisce che il codice è sintatticamente corretto per tutto. Eseguiamo il file con il nostro eterno "./UN.comando fuori "nella console. L'esecuzione di un file restituisce l'errore in cambio poiché l'istruzione Assert restituisce false in cambio. L'output è presentato nell'immagine fissata.

Se si desidera evitare l'output di errori asserti da parte dell'istruzione Assert, è necessario definire il flag No Debug all'interno del codice C ++. A tale scopo, è necessario utilizzare la parola chiave "Definisci" con il segno hash e "ndebug" come bandiera nell'area di intestazione. Pertanto, abbiamo aperto lo stesso file e aggiunto lo spazio dei nomi dopo il file di intestazione "IO". Dopo lo spazio dei nomi standard, abbiamo definito il flag "Ndebug" nell'intestazione e abbiamo usato il "Affermazione.H ”Testa dopo di esso. Assicurati di non modificare la sequenza delle intestazioni mostrate di seguito. All'interno della funzione principale (), abbiamo aggiunto l'istruzione COUT per output che la disabilitazione dell'assert ha avuto successo.

Compiliamo ed eseguiamo nuovamente questo codice aggiornato nella shell. Dopo averlo fatto, questa volta non abbiamo avuto errori usando il "ndebug" nella nostra area di intestazione.

Esempio 02

Facciamo un nuovo esempio di utilizzo dell'istruzione Assert nel codice C ++. Ma questa volta, utilizzeremo l'istruzione Assert all'interno di una funzione definita dall'utente. Pertanto, abbiamo aggiunto i file di intestazione e lo spazio dei nomi standard all'inizio del codice in una sequenza. È stato dichiarato il metodo di definizione dell'utente denominato "show ()", prendendo il valore del puntatore del tipo intero nel suo parametro.

All'interno della funzione show (), abbiamo usato l'istruzione "assert" per vedere se il puntatore è passato nel parametro non è nullo. Se è nullo, l'errore verrà lanciato. L'istruzione Cout visualizzerà quindi il valore di una variabile a cui punta il puntatore "V". All'interno della funzione principale, abbiamo inizializzato una variabile intera "val" con un valore di 13. Due puntatori "A" e "B" sono stati inizializzati per null. L'indirizzo della variabile "Val" è stato vincolato con il puntatore "A". La funzione show () è stata chiamata con il puntatore di passaggio "A" e "b" separatamente per produrre risultati diversi. La seconda chiamata per mostrare la funzione deve lanciare un'eccezione perché prende il puntatore nullo e l'istruzione Assert restituisce false in cambio. Salviamo ed eseguiamo il codice.

Dopo aver eseguito questo pezzo di codice, abbiamo ottenuto lo stesso risultato di cui abbiamo discusso sopra. Mostra il risultato 13 per la prima chiamata di funzione, i.e., Puntatore passato "A", mentre l'altra chiamata di funzione mostra l'errore.

Per correggere questo errore, devi solo legare il puntatore "B" anche con la variabile "Val". Pertanto, abbiamo fatto lo stesso all'interno del codice di seguito. Abbiamo sostituito la variabile "Val" con V1 e aggiunto un'altra variabile, "V2". La variabile V1 è stata legata con il puntatore "A" e V2 è stato vincolato con il puntatore "B". Lo script generale rimane lo stesso di mostrato.

Dopo il debug e l'esecuzione del codice, finora non sono stati trovati errori. Entrambi i valori per le variabili V1 e V2 sono stati visualizzati correttamente, come mostrato di seguito.

Esempio 03

Finiamo con l'ultimo ma non il più recente esempio di un'istruzione Assert nel codice C ++. Il codice contiene le due istruzioni di assistenza e due istruzioni Cout. La prima istruzione Assert sta verificando se la moltiplicazione risulta nello stesso output. Poiché la condizione è corretta logicamente, deve restituire vero e non verrà visualizzato alcun errore. L'istruzione Cout verrà eseguita visualizzando che la prima dichiarazione era corretta. L'altra istruzione Assert sta nuovamente verificando se la moltiplicazione da entrambe le parti restituisce lo stesso output. Poiché l'output non sarebbe lo stesso, sarà logicamente errato. Quindi, tornerà falso. Per questo motivo, si verificherà l'errore e successivamente l'istruzione Cout non verrà eseguita.

A causa di un errore logico, il programma termina automaticamente dopo l'esecuzione del primo cout.

Per risolvere questo problema, useremo il flag "Ndebug" nel codice come abbiamo fatto finora.

Questa volta, non è stato visualizzato alcun errore ed entrambe le istruzioni Cout vengono eseguite.

Conclusione

L'articolo è tutto sull'uso dell'istruzione C ++. Abbiamo fatto del nostro meglio per dimostrare il suo lavoro attraverso la funzione principale () e la funzione definita dall'utente. Abbiamo anche discusso del modo per disabilitare l'affermazione in C ++, i.e., la bandiera Ndebug. Speriamo che tutti gli esempi ti forniscano un immenso aiuto.