Warning C4180 in VS2K5



  • Was hat es mit der Fehlermeldung

    warning C4180: Auf Funktionstyp angewendeter Qualifizierer ist ohne Bedeutung; wird ignoriert
    

    bei

    header:
    const char operator[](int zahl) const;
    
    src:
    const char Zeichenkette::operator[](int zahl) const
    {
        ...
    }
    

    auf sich? Was ist hier "redundant"?



  • Kannst Du mal ein besseres Beispiel posten? Bei mir geht das ohne Probleme:
    CPP.h:

    #pragma once
    class Zeichenkette
    {
      const char operator[](int zahl) const; 
    };
    

    CPP.cpp:

    #include "CPP.h"
    #include <tchar.h>
    
    const char Zeichenkette::operator[](int zahl) const 
    { 
        return (const char) zahl;
    } 
    
    int _tmain()
    {
      return 0;
    }
    


  • Primitive Typen const zurückzugeben ist "redundant". Solche Rückgaben sind keine l-values und daher praktisch sowieso nicht veränderbar. Und wenn wir schon beim op[] sind, dann wolltest du wohl eher eine Referenz zurückgeben. Dann macht nämlich auch das const wieder Sinn.


Anmelden zum Antworten