ich möchte die anzahl der elemente einer privat variable mit einer public variable vorgeben



  • ich möchte die anzahl der elemente einer privat variable mit einer public variable vorgeben
    der compiler schreibt aber immer:
    error: invalid use of member tcp_connection::maxconnections

    sieht so aus:

    class tcp_connection
    {
    public:
    int maxconnections;
    ...
    
    private:
    int connectSocket[maxconnections];
    ...
    

    hilfe



  • Wenn du es so machst muss größe von connectSocket muss zu compile-zeit bekannt sein. Was du anders machen kannst ist: das array dynamisch erzeugen

    class tcp_connection
    {
    public:
    tcp_connection(int maxcon)
    :maxconnections(maxcon)
    {
      connectSocket = new int[maxconnections];
    }
    ~tcp_connection()
    {
      delete[] connectSocket;
    }
    int maxconnections;
    ...
    
    private:
    int *connectSocket;
    ...
    


  • ich würd aber int maxconnections; privat machen, weil eine veränderung von maxconnections führt nicht automatisch zu einer veränderung des arrays.



  • Hm, ich würde das in den Konstruktor packen, und dann noch ne SetMaxConnections
    funktion bauen, um später diese ändern zu können.
    Wozu dafür eine Variable ?

    Devil



  • muss die Anzahl der verbindungen wirklich dynamisch (zur laufzeit aenderbar) sein ?

    Wenns zur compilezeit bekannt iss, bietet sich nen template auch an ...

    Ciao ...


Anmelden zum Antworten