Klasse hat kein Mitglied benannt

Ich habe ein problem mit dem Zugriff auf eine Funktion aus einer Klasse mit dem class-Objekt in meinem main Funktion. Ich bin nur versuchen, machen das Objekt für die Klasse, und verwenden Sie dieses Objekt, um Zugriff auf die Funktion im inneren, die Klasse .cpp - Datei. Ich bekomme immer eine Fehlermeldung und ich sogar das einfachste Programm, um es zu testen und ich bekomme immer noch eine Fehlermeldung.

Main:

#include <iostream>
#include "Attack.h"

using namespace std;

int main()
{
    Attack attackObj;
    attackObj.printShiz();
}

Header-Klasse:

#ifndef ATTACK_H
#define ATTACK_H

class Attack
{
    public:
        Attack();
        void printShiz();
    protected:
    private:
};

#endif //ATTACK_H

Klasse .cpp:

#include <iostream>
#include "Attack.h"
using namespace std;

Attack::Attack() {

}

void Attack::printShiz() {
    cout << "Test" << endl;
}

Wie behebe ich diesen Fehler? Jedesmal, wenn ich versuche, auf die printShiz() Funktion in der Attack Klasse mit einem Objekt in meinem main Funktion, bekomme ich eine Fehlermeldung und es funktioniert nicht, dass diese Funktion existiert in dieser Klasse.

Fehler:

Fehler: 'class Attack' has no member named 'printShiz'

  • Der code sieht gut aus. Vielleicht ist es versucht, eine ältere version des headers.
  • Manchmal ist ein "Rebuild All" alles in Ordnung.
  • Habe es gerade ausprobiert, immer der gleiche Fehler :/
  • Sollten Sie post einige code, der das problem reproduziert. Der code, den Sie geschrieben gut aussieht.
  • schlage vor, 2 : Kopie printShiz() und ersetzen Sie alle mit kopiert. manchmal ist das, was es geschrieben ist scheint gleich, aber wenn Sie ändern ANsi auf notepad++ sehen Sie, dass unter code ist anders. passieren, wenn Sie wechseln viel zwischen den Tastatur-layouts
  • Das problem muss mit Ihrem include-Pfad, Verzeichnisse/Dateinamen etc.. Welche compiler verwenden Sie? Wenn z.B. GCC, dann kann man mit "g++ -E main.cc <-anderen-sind-etc - >" um proprocessor-Stufen-Ausgang, das zeigen wird, wenn der header, die Sie erwarten, wird eingebaut richtig in der übersetzungseinheit.
  • Ich benutze Codeblocks mit dem standard-GNU-GCC-Compiler, die es mit kam. Ich habe gerade mit Programmieren angefangen, also ich weiß nicht zu viel über das, was falsch ist.
  • würden Sie mir bitte den genauen Befehl, den Sie verwenden, um Ihren code kompilieren? Ich habe Angst, dass Sie nicht verknüpfen-Klasse.o-Objekt mit dem code richtig.
  • Ich bin wirklich neu auf dem ganzen coding-Sache, also ich weiß nicht genau, was du meinst mit dem Befehl. Ich weiß, dass ich mit Codeblocks mit dem GNU GCC Compiler. Wenn ich die compiler-Einstellungen unter " toolchain executables, sagt es, dass der C++ compiler mingw32-g++.exe
  • öffnen Sie ein terminal und die Hexe zu Ihrem Programm-Ordner und dann diesen Befehl ausgeben: mingw32-g++.exe main.cpp class.cpp -o main.exe dann versuchen zu laufen main.exe
  • Wie mache ich das? Wie gesagt ich bin SEHR neu zu Programmieren. Ich habe gerade angefangen ein paar Tagen. Ich will einfach nur, um zu beheben, was falsch ist, so kann ich gehen zurück, um zu lernen, wie man code.
  • welche windows version verwenden Sie?
  • Ich bin derzeit mit Windows 7
  • gut gehe zu start -> ausführen -> Typ cmd.exe und geben Sie dann Folgen Sie meinen vorherigen Kommentar.
  • Ich navigierte zu den Programm-Ordner und den Befehl eingegeben genau und bekam eine Antwort: "'ming32-g++.exe " nicht erkannt wird als Befehl interne oder externe, betriebsbereiten Programm oder batch-Datei."
  • so finden Sie mingw32-g++.exe und verwenden Sie den absoluten Pfad zum Aufruf (wie c:\some\folder\mingw32-g++.exe main.cpp class.cpp -o main.exe)
  • Da du sagst Sie sind neu in der Programmierung lassen Sie mich Ihnen einen Vorschlag, immer auch Ihre eigenen Header (siehe Ihre main.cpp), so dass Sie stellen Sie sicher, dass Sie alles, was Sie in anderen Dateien. Dein Beispiel ist ganz gut, es ist nur ein Vorschlag!
  • Vielen Dank für die Beratung! Mein Aktuelles problem ist momentan hält mich von der Programmierung und ich habe keine Ahnung, warum es passiert so, ich bin irgendwie deprimiert aus. Hoffentlich wird dieses problem bald behoben sein
  • Sie können auch testen Sie Ihren code hier: compileonline.com/compile_cpp_online.php
  • Bitte bewegen Sie erweiterte Diskussionen zu Stack-Overflow-Chat. Danke.

InformationsquelleAutor Rapture686 | 2013-07-05
Schreibe einen Kommentar