ak131554
23-01-2011, 23:03
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
cxsc::rmatrix* operator+(cxsc::rmatrix* const& lhs, cxsc::rmatrix* const& rhs)
{
add(lhs, rhs);
}
gibt mir folgende Fehlermeldung
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.
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
cxsc::rmatrix* operator+(cxsc::rmatrix* const& lhs, cxsc::rmatrix* const& rhs)
{
add(lhs, rhs);
}
gibt mir folgende Fehlermeldung
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.