C ++ Fehlerausdruck muss einen Klassentyp haben

C ++ Fehlerausdruck muss einen Klassentyp haben

Wann immer der Punkt (.) Der Bediener wird verwendet, um die Variablen eines Objekts auf Zeigern auf Objekte abzurufen. Der Fehler „Ausdruck muss einen Klassentyp haben“ erhöht. Wenn der Punkt (.) Der Bediener wird auf einen Zeiger eines beliebigen Objekts der erforderlichen Klasse, des Punktes (.) Der Bediener versucht, die Datenmitglieder und die Mitgliederfunktionen des Zeigers zu lokalisieren. Aber sie würden nicht existieren, was zu diesem Fehler führt.Es ist möglich, dass wir einen Fehler erhalten, der besagt, dass der „C ++ - Ausdruck einen Klassentyp haben muss“ beim Zugriff auf eine Klassenfunktion in c++. Wenn wir einen Zeiger der Klasse haben, sollten wir den Pfeil (->) Operator verwenden. Wenn wir ein Objekt der Klasse haben, müssen wir den Punkt verwenden (.) Operator, um den Fehler „Ausdruck zu beheben“ muss einen Klassentyp haben ".

Den Punkt verwenden (.) Operator

Das C ++ - Programm zur Anzeige des Fehlers „Ausdruck muss einen Klassentyp haben“ lautet wie folgt:

#enthalten
Verwenden von Namespace STD;
Klassenreisen
öffentlich:
void showmycountry ()

Cout<< "I want to go Turkey!";

;
int main ()

Travel* a = new Travel ();
A.showmycountry ();
Rückkehr 0;

In diesem Programm haben wir die Header -Datei eingeführt und auch einen Standard -Namespace verwendet. Wir haben eine Klasse mit dem Namen "Travel" deklariert. Und definierte dann die Funktion void "showmycountry ()" dieser Klasse und setzen Sie sie auf die Öffentlichkeit ein. Für diese Funktion wird der Befehl „Cout“ angewendet, um die Nachricht zu drucken: „Ich möchte in die Türkei gehen!”.

Wir begannen die Codierung im Körper der Main () -Funktion. Das Objekt der Klasse wurde konstruiert und wir haben dieses Objekt festgelegt, das dem Zeiger der Klasse entspricht. Wir haben auch die Mitgliedsfunktion „ShowMycountry ()“ der Klasse „Reisen“ mit Hilfe des Punktes definiert (.) Operator. Am Ende haben wir die "Rückgabe 0" eingegeben, um das Programm zu beenden.

So beheben Sie den Fehler "Ausdruck muss einen Klassentyp haben"

Das Hauptaugenmerk liegt darauf, die erforderliche Klasse ohne Verwendung des neuen Bedieners zu deklarieren. Zum Beispiel, anstatt das Objekt der Klasse als „Reisen *a = new Travel ()“ zu deklarieren, deklarieren Sie es als „Reise A“, um die Klassenmitglied -Funktion mit Hilfe des Punktes zu erhalten (DOT (.) Operator.

#enthalten
Verwenden von Namespace STD;
Klassenreisen
öffentlich:
void showmycountry ()

Cout<< "I want to go Turkey!";

;
int main ()

Reisen a;
A.showmycountry ();
Rückkehr 0;

Zuallererst haben wir die Header -Datei aufgenommen . Der Standard -Namespace kann auch verwendet werden. Wir haben die „Reise“ -Klasse erstellt. Die Funktion dieser Klasse "showmycountry ()" ist definiert und veröffentlicht. Der Befehl „Cout“ wurde angewendet, um die Erklärung zu zeigen: „Ich möchte in die Türkei gehen!”Innerhalb der Funktion. Dann haben wir die Main () -Funktion bezeichnet. Das Objekt der „Reise“ wurde gebaut. Wir haben den Punkt verwendet (.) Betreiber deklarieren die Mitgliedsfunktion „ShowMycountry ()“ der „Reise“ -Klasse . Zuletzt haben wir die "Return 0" eingegeben, um das Programm zu verlassen.

Erklären Sie den Zeiger der Klasse

Der nachfolgende Code beabsichtigt, den Punkt zu verwenden (.) Bediener auf einem Objektzeiger anstelle des Objekts direkt.

#enthalten
Verwenden von Namespace STD;
Klassensprache
öffentlich:
void func ()
Cout<<"Artificial Langugae";

;
int main ()

Sprache *ptr = neue Sprache ();
ptr.func ();
Rückkehr 0;

Zu Beginn des Codes haben wir die Bibliothek für Eingabe- und Ausgabefunktionalitäten integriert. Dann haben wir den Standard -Namespace eingegeben. Wir haben die „Sprachkurs“ öffentlich konstruiert. Wir haben die Funktion void func () für diese Klasse definiert. Wir wollen den Ausdruck „künstliche Intelligenz“ zeigen, damit wir die Aussage „Cout“ verwendet haben.

Der Körper der Haupt- () -Funktion beginnt. Dort haben wir einen Zeiger auf die "Sprach" -Klasse deklariert. Wir setzen den Zeiger gleich dem Objekt dieser Klasse. Wir haben den Punkt verwendet (.) Operator aufzurufen, um den Funktionsfunc () der Klasse aufzurufen. Wir haben jedoch den Zeiger "PTR" dieser Klasse deklariert. Anstatt ein Element des Zeigers auf das Klassenobjekt zu sein, ist „Func“ eine Komponente des Objekts der „Sprachkurs“. Um das Programm zu beenden, haben wir die "Rückgabe 0" in den Code aufgenommen.

Wir werden den Klassenzeiger im folgenden Beispiel verwenden. Dazu fügen wir den Pfeil (->) Operator und nicht den Punkt ein, der (.) Operator.

#enthalten
Verwenden von Namespace STD;
Klassensprache

öffentlich:
void func ()
Cout<<"Artificial Intelligence"Rückkehr 0;

int main ()

Sprache *ptr = neue Sprache ();
ptr-> func ();
Rückkehr 0;

Nachdem wir die Bibliothek eingeführt hatten, verwendeten wir den Standard -Namespace. Wir haben die Klasse „Sprache“ öffentlich definiert. Für diese Klasse haben wir die void Func () -Funktion erstellt. Wir haben die Erklärung "Cout" verwendet, um den Ausdruck "künstliche Intelligenz" zu zeigen. Der Befehl „endl“ wird auch verwendet, um die Maus in die nächste Programmlinie zu verschieben. Der Körper der Main () -Funktion beginnt unten:

Ein Zeiger auf die „Sprachkurs“ wird deklariert. Dann setzen wir den Zeiger, der dem Klassenobjekt entspricht. Wir haben die Funktion mit Hilfe des Klassenzeigers „PTR“ und dem Pfeil (->) Operator aufgerufen. Der Befehl „return 0“ wurde in den Code eingefügt, um das Programm zu beenden.

Abschluss

In diesem Artikel haben wir darüber gesprochen, wie der Fehler „Ausdruck einen Klassentyp haben muss“ und wie man ihn in C behebt++. Wenn der Punkt (.) Der Operator, mit dem die Methoden und Attribute eines Objekts im Allgemeinen erfasst werden. Der Punkt(.) Der Bediener versucht, die Attribute oder Funktionen eines Zeigers auf ein Objekt zu identifizieren, fällt jedoch fehl. Dies liegt daran, dass sie nicht vorkommen. Anstatt Mitglied des Zeigers auf eine Klasse zu sein, sind diese Attribute oder Funktionen Teil der Klasse selbst. Wenn wir einen Klassenzeiger verwenden, müssen wir den Pfeil (->) Operator einfügen, um die Funktion aufzurufen.