Når prikken (.) Operatør brukes til å hente et objekts variabler på pekere til objekter, feilen "uttrykket må ha en klassetype" blir hevet. Hvis prikken (.) operatør brukes på en peker av ethvert objekt i den nødvendige klassen, prikken (.) Operatøren prøver å lokalisere datamedlemmene og pekerens medlemsfunksjoner. Men de ville ikke eksistere, noe som fører til denne feilen.Det er mulig at vi vil få en feil om at "C ++ -uttrykket må ha en klassetype" når vi får tilgang til en klassefunksjon i C++. Hvis vi har noen peker i klassen, bør vi bruke Arrow (->) -operatøren. Når vi har et objekt i klassen, må vi bruke prikken (.) Operatør for å fikse feilen "uttrykk må ha en klassetype".
Bruk prikken (.) Operatør
C ++ -programmet for å vise at "uttrykket må ha en klassetype" -feil er som følger:
#inkludereI dette programmet introduserte vi overskriftsfilen og brukte også et standard navneområde. Vi erklærte en klasse som heter “Travel”. Og definerte deretter funksjonen tomrom "showmycountry ()" i denne klassen og satte den til offentlig. For denne funksjonen blir “cout” -kommandoen brukt for å skrive ut meldingen, “Jeg vil gå Tyrkia!”.
Vi startet kodingen i kroppen til hovedfunksjonen (). Klassenes objekt ble konstruert, og vi satte det objektet lik pekeren til klassen. Vi definerte også medlemsfunksjonen “ShowMyCountry ()” av klassen “Travel” ved hjelp av DOT (.) operatør. Til slutt skrev vi inn "Return 0" for å avslutte programmet.
Hvordan fikse feilen “uttrykk må ha en klassetype”
Hovedfokuset er å erklære den nødvendige klassen uten bruk av den nye operatøren. For eksempel, i stedet for å erklære objektet for klassen som "reise *a = ny reise ()," erklærer det som "reise a" for å få klassemedlemmet funksjon ved hjelp av prikken (.) operatør.
#inkludereFørst av alt inkluderte vi overskriftsfilen . Standard navneområdet kan også brukes. Vi opprettet "Travel" -klassen. Funksjonen til denne klassen tomrom “showmycountry ()” -funksjonen er definert og offentliggjort. Kommandoen “Cout” ble brukt for å vise uttalelsen “Jeg vil gå Tyrkia!”Innenfor funksjonen. Deretter kalte vi Main () -funksjonen. Formålet med "reise" -klassen ble bygget. Vi brukte prikken (.) Operatør for å erklære medlemsfunksjonen “ShowMyCountry ()” i “Travel” -klassen . Til slutt skrev vi “Return 0” for å avslutte programmet.
Forklar pekeren til klassen
Den påfølgende koden har til hensikt å bruke prikken (.) operatør på en objektpeker i stedet for objektet direkte.
#inkludereI starten av koden integrerte vi biblioteket for input og output -funksjonalitet. Deretter gikk vi inn i standardnavnet. Vi konstruerte "språk" -klassen offentlig. Vi definerte funksjonen void func () for denne klassen. Vi ønsker å vise uttrykket "kunstig intelligens", så vi brukte "cout" -uttalelsen.
Kroppen til hovedfunksjonen () begynner. Der erklærte vi en peker til "språk" -klassen. Vi setter pekeren lik gjenstanden for denne klassen. Vi utnyttet prikken (.) operatør for å ringe funksjonen func () i klassen. Vi erklærte imidlertid pekeren "PTR" i denne klassen. I stedet for å være et element i pekeren til klasseobjektet, er "func" en komponent i objektet med "språk" -klasse. For å avslutte programmet inkluderte vi “Return 0” i koden.
Vi kommer til å bruke klassepekeren i følgende eksempel. For å gjøre dette, setter vi inn pil (->) -operatøren i stedet for prikken (.) operatør.
#inkludereEtter å ha introdusert biblioteket, brukte vi standard navneområdet. Vi definerte offentlig "språk" -klassen. For denne klassen opprettet vi Void Func () -funksjonen. Vi brukte "cout" -erklæringen for å vise uttrykket "kunstig intelligens". Kommandoen “Endl” brukes også til å skifte musen til neste programlinje. Kroppen til hovedfunksjonen () starter nedenfor:
En peker til "språk" -klassen er erklært. Deretter setter vi pekeren som tilsvarer klasseobjektet. Vi påkalte funksjonen ved hjelp av klassepekeren “PTR” og Arrow (->) -operatøren. Kommandoen “Return 0” ble satt inn i koden for å avslutte programmet.
Konklusjon
I denne artikkelen snakket vi om hvordan feilen "uttrykket må ha en klassetype" oppstår og hvordan du fikser den i C++. Når prikken (.) Operatør, som vanligvis brukes til å skaffe et objekts metoder og attributter, brukes på pekere på klasser, deretter blir feilen "uttrykket ha en klassetype" returnert. Prikken (.) operatør prøver å identifisere attributtene eller funksjonene til en peker til et objekt, men mislykkes. Dette er fordi de ikke oppstår. I stedet for å være medlem av pekeren til en klasse, er disse attributtene eller funksjonene en del av selve klassen. Som et resultat, når vi bruker en klassepeker, må vi sette inn pil (->)) for å påkalle funksjonen.