Variablendeklaration in Header-file-Methodenparameter



  • Oh,

    der Kompilierfehler verblüfft mich. Das Header-File habe ich eingebunden, aber ich dachte im Header-File deklariere ich keine Objekte, die als Parameter gebraucht werden. Im a.cpp-File schreibe ich dann die Implementierung und in der main-Methode wird die Instanz doch erst tatsächlich erzeugt. Was habe ich vergessen?

    // a.h
    
    #include "mysuperduperclass.h"
    
    class A{
    
    ...
    
    void myMethod( MySuperDuperClass msdc ); // MySuperDuperClass not declared!
    
    ...
    


  • Die Definition kannste verschieben, aber die Deklaration muß schon da sein.

    Inkludiert (evtl über Umwege) die mysuperduperclass.h die a.h?



  • Das heißt alle meine Funktionsparameter müssen als Attribut in der Klasse vorhanden sein?

    Ja und ich denke schon, dass mysuperduperclass die a.h inkludiert. Die beiden rufen sich nämlich gegenseitig auf - meinst du damit, dass das 'meinsuperduper.h'-File etwa gar nicht inkludiert wird?



  • Jay1980 schrieb:

    Das heißt alle meine Funktionsparameter müssen als Attribut in der Klasse vorhanden sein?

    Nein. An Deiner Datei war alles richtig.
    Außer vielleicht dem fehlenden Include-Guard bzw. #pragma once.


Anmelden zum Antworten