Use of 'count' is ambiguous



  • Hallo zäme,

    ich habe eine globale Variable vom Typ Integer definiert. Wenn ich darauf zugreifen möchte, erhalte ich die Fehlermeldung:
    Use of 'count' is ambiguous

    Nachfolgend der davon betroffene Code:

    #include <stdlib.h>
    #include <iostream>
    #include <cstring> // strlen
    #include <string>
    using namespace std;

    struct element
    {
    int value;
    element *next; // address of next number in the stack
    };
    element *anchor; // first element of the list
    element *first;
    int count; // amount of numbers stored in the list

    void init() {
    count=0;
    anchor = 0;
    }

    Die Methode init() wird aus der main Methode aufgerufen.

    Habt Ihr eine Idee?

    Gruss & danke.



  • proxteam schrieb:

    Hallo zäme

    Schweizer? 🙂

    proxteam schrieb:

    ich habe eine globale Variable vom Typ Integer definiert. Wenn ich darauf zugreifen möchte, erhalte ich die Fehlermeldung:
    Use of 'count' is ambiguous

    Da gibts wahrscheinlich ein Problem mit der Funktion std::count() in der Standardbibliothek. Eventuell wird der Header <algorithm> irgendwo versteckt eingebunden (möglicherweise in <string> ). Dadurch, dass du using namespace std; verwendest, fällt das in den globalen Namensraum - wie deine Variable. Somit hast du mehrdeutige Bezeichner.

    Hier siehst du einen Grund, wieso man mit using namespace sparsam umgehen sollte. Lasse diese Zeile weg und schreibe vor Standardtypen std:: , also beispielsweise std::cout und std::string .

    Im Weiteren ist die Headerdatei <stdlib.h> nicht ganz korrekt, besser wäre <cstdlib> (C++-Standardheader haben nie eine Dateiendung). Aber wenn du deren Funktionalität nicht benötigst, kannst du die Datei auch weglassen. Es wäre auch gut, wenn du in Zukunft [cpp]-Tags verwenden könntest (erste weisse Schaltfläche), damit wird der Code schön bunt.



  • Noch einen kleinen Tipp fürs Forum:

    Wir haben hier cpp-Tags: (gleich unter dem Smileys)

    #include <stdlib.h>
    #include <iostream>
    #include <cstring> // strlen
    #include <string>
    using namespace std;
    
    struct element
    {
      int value;
      element *next; // address of next number in the stack
    
      element *anchor; // first element of the list
      element *first;
      int count; // amount of numbers stored in the list
    
      void init() {
      count=0;
      anchor = 0;
      }
    };
    


  • Vielen Dank! 😃 Es funktioniert bestens und danke für den Tipp des Syntaxhighlightings.


Anmelden zum Antworten