Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Globale Operatorüberladung bei Pointer

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.08.2008
    Beiträge
    18

    Globale Operatorüberladung bei Pointer

    Hallo,

    ich möchte in meinem Programm mit Arrays arbeiten, deren Größe ich zur Compilezeit nicht kenne. Diese Arrays, sie haben zur Laufzeit alle die gleiche Größe, möchte ich nun mittels Operatoren addieren, subtrahieren usw.

    Der entsprechende Code
    Code:
    cxsc::rmatrix* operator+(cxsc::rmatrix* const& lhs, cxsc::rmatrix* const& rhs)
    {
        add(lhs, rhs);
    }
    gibt mir folgende Fehlermeldung
    Code:
    error C2803: Operator '+' muss mindestens einen formalen Parameter vom Typ Klasse haben
    VS 2010 sagt mir noch, dass ein Operator, der kein Member ist, einen Parameter erfordert, der einen Klassen- oder Enumerationstyp hat. Natürlich könnte ich das Feld jetzt in eine Klasse kapseln, aber das möchte ich nicht, da ich schon so programmieren will, dass das Programm zeit- und speicheroptimiert ist.
    Habe ich eine Möglichkeit übersehen oder geht es wirklich nicht, arrays mittels Operatoren zu addieren? In jedem Fall muss mein Programm sowohl auf Windows- als auch auf Unix-Systemen kompilierbar und damit laufbar sein.

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Du könnest statt einem C Array einen Vector benutzen. Das wäre dann ein unterscheidbarer Typ.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Ist das eine Programmierübung deinerseits? Wenn nein, dann benutze doch am besten eine Bibliothek die es schon gibt.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •