L'errore non può chiamare la funzione membro senza oggetto C ++

L'errore non può chiamare la funzione membro senza oggetto C ++
Il linguaggio di programmazione è un pacchetto di concetti, funzioni integrate e operazioni integrate; Si presenta anche molti errori. Questi errori possono essere di tipo logico, errori di sintassi e anche altri. È possibile ottenere molti errori durante la codifica quando si effettuano alcuni errori logici o di sintassi nel codice. Uno degli errori di molte di queste eccezioni è "non può chiamare la funzione membro senza oggetto". Si verifica quando proviamo a chiamare una funzione nel nostro programma senza creare un oggetto di classe. Quindi, questa guida contiene esempi per far accadere questo errore e la soluzione per risolverlo. Assicurati di aver lavorato su Ubuntu 20.04 Sistema e avvia il terminale tramite "Ctrl+Alt+T". Cominciamo con gli esempi.

Esempio 01:

Iniziamo il nostro primo esempio per approfondire il modo in cui otteniamo l'errore "non è possibile chiamare la funzione membro senza oggetto" nel codice C ++. Quindi, la prima cosa che dobbiamo fare è creare un file C ++. Questo file può essere creato con alcuni editor di testo all'interno di File Explorer o all'interno della shell. Puoi provare a aprirlo con l'editor VIM, l'editor di testo o qualche altro editor come GNU Nano Editor. Quindi, abbiamo aperto direttamente questo file appena creato in GNU Nano Editor usando il comando "Nano". Ora, il file vuoto appena creato viene lanciato nel nano editor e pronto per essere utilizzato.

Abbiamo iniziato il nostro codice con l'aggiunta di alcuni file di intestazione, i.e., "Iostream". È possibile utilizzare lo spazio dei nomi "std" nel codice dichiarandolo prima della funzione principale. Altrimenti, è necessario utilizzare la parola chiave "std" con ogni clausola di cout e CIN nel programma. Quindi, l'abbiamo inizializzato prima del metodo principale usando la parola chiave "usando". Abbiamo creato una semplice classe denominata "A" nel codice. Questa classe contiene una singola funzione definita dall'utente denominata "show ()". La funzione contiene la Dichiarazione di una variabile di tipo carattere denominata "A". La prima dichiarazione Cout di questa funzione chiede di aggiungere un carattere da un utente. La clausola "CIN" consente a un utente di aggiungere quel carattere sulla shell e salvarlo nella variabile "A". L'ultima istruzione Cout è stata utilizzata qui per visualizzare il carattere sulla shell che l'utente ha input.

Ora la classe è terminata e abbiamo iniziato il metodo principale. È ora di chiamare la funzione per eseguirla senza usare nient'altro. Quindi, abbiamo semplicemente usato il nome di classe "A" con "::" per chiamare la funzione "show ()" nel metodo principale. Il metodo principale è chiuso qui. Siamo pronti a salvare questo codice con Ctrl+S in quanto è già completo.

Torna al terminale usando “Ctrl+X. Ora, è giunto il momento di compilare il codice con il compilatore C ++ incorporato di Ubuntu 20.04. Pertanto, abbiamo usato l'istruzione del compilatore "G ++" qui per semplicemente compilare il file di codice e vedere se è privo di errori o meno. Alla compilazione, mostra l'errore. Ciò significa che non possiamo semplicemente eseguire o chiamare la funzione show () della classe "A" senza creare un oggetto di questa classe.

Quindi, dobbiamo aggiornare ancora una volta il file di codice. Utilizzare ancora una volta l'editor Nano e risolvere questo errore. Quindi il vecchio file viene riaperto. Dobbiamo solo modificare la funzione principale () per sfuggire a questo errore finora. Quindi, abbiamo creato un oggetto "OBJ" della classe "A". Ora, questo oggetto "OBJ" è stato usato qui per chiamare la funzione show () della classe "A" usando il "punto" tra il nome dell'oggetto e il nome della funzione. Salva il codice per riflettere le modifiche all'esecuzione utilizzando la chiave di scelta rapida semplice, i.e., "Ctrl+S". Il codice aggiornato è stato visualizzato nell'immagine qui sotto. Torniamo al terminale per compilare il codice aggiornato usando "Ctrl+X".

Utilizzato l'istruzione del compilatore "G ++" ai fini della compilazione del codice. Questa volta non abbiamo ricevuto errori. Durante l'esecuzione del codice, abbiamo ottenuto il risultato mostrato di seguito. Ha chiesto di entrare nel personaggio, aggiungendo "A". In cambio, ha mostrato il carattere sulla shell. Utilizzo dell'oggetto per chiamare la funzione show ().

Esempio 02:

Facciamo un altro esempio di ottenere lo stesso errore e risolverlo in seguito. Quindi, abbiamo aperto l'errore del file.CC e ha creato il codice di seguito. Questo codice è stato avviato dal file di intestazione iostream, dallo spazio dei nomi STD e si è concluso con il metodo principale. Il nostro programma contiene due classi, A e B. A è la classe genitore e B è la classe figlio di ereditare le sue proprietà qui. La classe genitore A contiene una funzione "print ()" con una singola istruzione che mostra che questa è una funzione di classe principale. La classe figlio contiene una funzione "show ()" con un'istruzione cout che mostra che il metodo della classe figlio è stato eseguito. La funzione principale () contiene un semplice metodo "::" per chiamare entrambi i metodi usando le rispettive classi, i.e., "A" e "B". Eseguiamo questo codice per vedere come funziona.

Quando abbiamo compilato il codice, abbiamo ricevuto l'errore di eccezione dicendo "Impossibile chiamare la funzione membro senza oggetto" per entrambe le chiamate della funzione. Questo perché non abbiamo creato gli oggetti per chiamare le funzioni delle rispettive classi e lo abbiamo fatto direttamente.

Apriamo di nuovo il file utilizzando il "Nano Editor". Non è necessario modificare l'intero codice; Solo il metodo principale () richiede una piccola modifica. Dato che puoi avere uno sguardo che abbiamo creato un oggetto obj1 della classe genitore “A” e lo abbiamo usato per fare una chiamata alla funzione di stampa (). Quindi, abbiamo creato un oggetto "obj2" della classe B e abbiamo fatto una chiamata per funzionare "show ()" qui per eseguirlo. Possiamo anche evitare di rendere l'oggetto della classe genitore "obj1" e ancora chiamare la sua funzione usando l'oggetto della classe figlio "obj2". Entrambe le funzioni nelle classi genitori e figlio hanno nomi diversi, quindi non causerà alcun errore. Salviamo semplicemente il file di codice con Ctrl+S e torniamo al terminale per vedere se l'errore è risolto o no.

Dopo la compilazione del codice aggiornato, possiamo dare un'occhiata che l'errore "non può chiamare la funzione membro senza il suo oggetto" è stato finalmente rimosso e il codice è pronto per essere eseguito. Sia le funzioni della classe genitore che di figlio sono state eseguite come mostrato all'esecuzione del codice.

Conclusione:

Questo articolo contiene una semplice dimostrazione della creazione di un errore "Impossibile chiamare la funzione membro senza l'oggetto" nel programma C ++. Abbiamo usato il concetto di lezioni qui per renderlo possibile. Quindi, abbiamo anche dimostrato la soluzione per risolvere questo errore all'interno degli esempi. Siamo abbastanza fiduciosi che questo articolo sarà utile a tutti gli utenti naïve al C ++.