Stackprogrammierung push(const itemType&)



  • Hallöchen!
    Wieder eine Noobfrage von mir 😞
    Ich hab wieder so ne Aufgabe bekommen bei denen ich die Funktionsköpfe nicht ändern kann. Sowas ist mir noch nie über den Weg gelaufen.

    push(const itemType&)
    

    itemType kommt aus einem Template und definiert den Datentyp. Ich müsste an die Variable ran, die übergeben wird, wie macht man sowas?



  • Referenzen verfolgen unter der Haube das selbe Konzept wie Pointer, du musst sie allerdings nicht dereferenzieren und kannst sie wie eine normale Variable verwenden.



  • also schreib ich:

    <itemType> neuevariable = const itemType&
    

    oder wie 😕



  • benny111 schrieb:

    Ich hab wieder so ne Aufgabe bekommen bei denen ich die Funktionsköpfe nicht ändern kann. Sowas ist mir noch nie über den Weg gelaufen.

    push(const itemType&)
    

    Sieht der Funktionskopf wirklich so aus?
    1. "const itemType&" ist durchaus zulässig, in der Implementierung der Funktion kannst du diesen um einen Variablennamen ergänzen (Ich sehe es aber als unsauberen Stil an, mit unbenannten Parametern im Header zu arbeiten, da ich den Header als die Einheit ansehe, in der man sich einen Überblick verschafft).
    2. Der fehlende Rückgabewert ist jedoch kein gültiger C++ Code! Einige Compiler lassen dies (In der Regel aber nicht bei der höchsten Warnstufe) zu, und nehmen dann häufig int als Rückgabewert an.



  • benny111 schrieb:

    also schreib ich:...

    Nein, die Funktionsimplementierung muss um einen Parametername ergänzt werden, zum Rest siehe mein letztes Post.



  • tschuldige... da steht im header

    bool push(const itemType&)
    

    und ich darf den Header nicht erweitern... darf ich einfach nicht -.-
    gibts nicht irgendne möglichkeit trotzdem an die variable ran zu kommen, das ich den z.B. ausgeben kann?



  • benny111 schrieb:

    also schreib ich:

    <itemType> neuevariable = const itemType&
    

    oder wie 😕

    Ohne Name wird das natürlich nichts. Einen Namen hinzufügen steht dir im Übrigen frei, da du nicht die Funktionssignatur veränderst.

    void foo(const bar& var)
    {
      std::cout << var;
    }
    


  • Ethon schrieb:

    Einen Namen hinzufügen steht dir im Übrigen frei, da du nicht die Funktionssignatur veränderst.

    Ich hoffe meine Proffs sehn das auch so... ich machs einfach so 🙂
    Dankeschön für die Hilfe



  • benny111 schrieb:

    Ich hoffe meine Proffs sehn das auch so... ich machs einfach so 🙂

    Du hast eh keine Alternative dazu.


Anmelden zum Antworten