Sintassi
Il messaggio di errore del nostro errore è il seguente:
Errore: Impossibile dichiarare la variabile "essere di tipo astratto"Si noti che nella parentesi vuota, ci saranno nomi di classi variabili e astratti.
Errore C2259: "Stato": Impossibile istanziare la classe astrattaQuesto è un altro messaggio che riceviamo dal compilatore quando incontriamo un tale errore.
Esempio # 01:
Per rendere comprensibile questo errore, eseguiremo un esempio in cui scriveremo il nostro codice in modo tale da ottenere un errore. A tale scopo, abbiamo inizializzato una classe con il nome "ShapeClass". Per rendere astratto questa classe, abbiamo dichiarato una funzione virtuale con il nome "GetArea". Abbiamo dichiarato altre due funzioni anche con i nomi rispettivamente "setwidth" e "setheight". Quello che vogliamo fare qui è che vogliamo ottenere l'altezza come parametro e larghezza come parametro di input. Calculeremo l'area con l'aiuto dei nostri parametri di input. Abbiamo creato un'istanza della nostra classe nel metodo principale. Con l'aiuto di quell'oggetto, abbiamo chiamato i metodi e passeremo i parametri di input attraverso quei metodi. Successivamente, abbiamo stampato il nostro output per controllare i risultati.
#includereIl sistema ci ha dato un errore dopo l'esecuzione del nostro codice. Il messaggio di errore dice che non possiamo dichiarare la variabile "sh" di tipo astratto "shapeclass". Ora, il compilatore sta cercando di comunicare che "ShapeClass" è un tipo astratto e non possiamo dichiarare la sua variabile. Quindi, con il messaggio, possiamo capire chiaramente che il compilatore non ci consente di istanziare la nostra classe astratta ed è per questo che il sistema ci sta dando l'errore.
Per risolvere l'errore, abbiamo dichiarato un'altra classe "rettangolo". Questa classe sarà la classe bambino della nostra classe astratta e dichiareremo il corpo della nostra funzione virtuale in questa classe. Dopodiché, creeremo il suo oggetto nel metodo principale e con l'aiuto del suo oggetto, chiameremo le funzioni.
Dopo gli emendamenti, abbiamo apportato il nostro codice e ora abbiamo avuto successo nell'esecuzione del nostro codice. Il sistema ha eseguito il nostro codice senza dare errori. Nell'output possiamo vedere che il sistema ha calcolato l'area di un rettangolo e stampato l'uscita. Abbiamo imparato che il nostro errore era che stavamo chiamando direttamente l'oggetto della nostra classe astratta che era l'approccio sbagliato. Quando abbiamo chiamato l'oggetto della sua classe figlio, il nostro codice ha iniziato a funzionare bene.
Esempio # 02:
In questo esempio, non faremo alcun calcolo matematico. Questo esempio è un esempio generico che ci aiuterà a comprendere le classi astratte e come il compilatore funziona tra i metodi e le classi durante l'esecuzione del codice. In questa classe, abbiamo creato una classe astratta e denominata "assicio". Abbiamo dichiarato un'altra classe "ChildClass" ma questa non è una classe astratta. Questa classe deriva dalla nostra classe astratta.
Abbiamo stampato "Valore Passato usando l'oggetto" in un metodo dichiarato nella classe astratta. Il nome della funzione è "ValueFunc". Come abbiamo discusso, il corpo della funzione virtuale è dichiarato nella classe infantile. Nella nostra classe figlio, abbiamo stampato "in funzione virtuale" nel nostro corpo di funzione virtuale. Ora passeremo un valore alla nostra funzione del valore e vedremo se il valore raggiunto è corretto. Nel nostro metodo principale, abbiamo creato un'istanza della nostra classe astratta e con l'aiuto dell'istanza, chiameremo le nostre funzioni virtuali e di altro tipo. Ora eseguiremo il nostro codice.
#includereDopo l'esecuzione del nostro codice, riceveremo un errore. Questo errore è fondamentalmente che non possiamo istanziare una classe astratta che stiamo cercando di fare qui nel nostro metodo principale. Una cosa da notare qui è che il tipo variabile e astratto nel nostro messaggio è stato modificato.
Ora cercheremo di rimuovere il nostro errore ed eseguire il nostro codice. A tale scopo, creeremo l'oggetto della nostra classe figlio e faremo l'istanza. Con l'aiuto di tale istanza, chiameremo sia il metodo virtuale che un altro metodo nella nostra classe astratta. Sarà anche osservato se possiamo accedere alla funzione virtuale usando la classe figlio o no. Se abbiamo successo nel farlo, possiamo dire che abbiamo acceduto alla classe astratta usando la sua classe derivata.
All'esecuzione del nostro codice, il compilatore non ha lanciato alcun errore questa volta. Invece, il sistema ha compilato il nostro codice correttamente e ci ha dato l'output. Ora, diamo un'occhiata all'output. Il sistema ha stampato "Valore Passato usando l'oggetto" e "5" contro di esso. Perché abbiamo superato 5 usando la nostra istanza nel metodo principale. Successivamente, ha stampato la linea a cui abbiamo chiesto nella nostra funzione virtuale.
Conclusione
In questa guida, abbiamo discusso degli errori critici che i programmatori incontrano durante la codifica e la pratica dei concetti orientati agli oggetti. Questi tipi di errori si verificano spesso quando un programmatore ha a che fare con classi astratte. L'intero articolo riassume che le classi astratte non possono essere istanziate e non possiamo far sì che i loro oggetti chiamassero metodi. Abbiamo anche provato diversi esempi per creare errori e quindi risolto gli errori nel nostro codice.