Feld/Vektor aus Klassenobjekten in dieser erstelle

Hi,
es geht um folgenden Code:

class Test
{
private:
vector ttest;/// Test *ttest
int value;

public:
int getV();

}
void Test::methode (Test& b)
{
ttest.reserve(b.getV());
ttest.resize(value);
/// *ttest= new Test[value];

}

Beides funktioniert nicht, folgende Fehlermeldung wird produziert:
no matching function for call to ‚Test::Test()‘
Heißt das, dass man keine Objekte einer Klasse in der selben erstellen kann?

Gruß AT

Hossa :smile:

no matching function for call to ‚Test::Test()‘

Damit du ein Objekte einer Klase in einen Vektor packen kannst, muss diese Klasse über einen parameterlosen Standard-Konstruktor verfügen. Den sucht der C++ Compiler offenbar vergebens…

Viele Grüße

Hasenfuß

Danke :wink:,
hat schon mal super geklappt. Nun sind aber noch weitere Fehler passiert, die ich nicht verstehe und iwie noch nie gesehen hab:
1.Warning in der Deklaration einer if-Struktur:
suggest parentheses around assignment used as truth value
2. error: lvalue required as left operand of assignment
3. error beim erstellen einer instanz: expected ; befor ‚instanzName‘

Weis jetzt nit was ihr so schon darüber sagen könnt, der gesamt Code ist blos etwas lang und ich hab keine Ahnung wie man den gescheit postet. Kann ich natürlich machen :wink:

Gruß AT

Hossa AT :smile:

1.Warning in der Deklaration einer if-Struktur:
suggest parentheses around assignment used as truth value

Der zu prüfende Ausdruck in einer if-Anweisung muss eingeklammert sein:

if (a>b) machwas();

  1. error: lvalue required as left operand of assignment

Auf der linken Seite einer Zuweisung muss eine veränderbare Variable stehen. Hast du vielleicht bei der if-Anweisung ein einfaches „=“ verwendet anstatt ein „==“?

  1. error beim erstellen einer instanz: expected ; befor
    ‚instanzName‘

In C++ werden Befehle durch ein Semikolon abgeschlossen.

Weis jetzt nit was ihr so schon darüber sagen könnt, der
gesamt Code ist blos etwas lang und ich hab keine Ahnung wie
man den gescheit postet. Kann ich natürlich machen :wink:

Ohne den Code zu sehen, konnte ich leider nur grob schreiben, was die Fehlermeldungen im Allgemeinen bedeuten. Für genauere Aussagen brauche ich den Quelltext…

Viele Grüße

Hasenfuß

Ok danke. Die Compilerfehler haben sich alle geklärt. Allerdings hab ich da noch ein Problem bei der Funktion. Ich hab da irgendwie was falsch gemacht, zumindest stimmt das Ergebnis nicht :wink:. Wahrscheinlich irgend ein einfacher Fehler den ich mittlerweile einfach übersehe. Falls ich den in den nächsten Tagen nicht finde würde ich den Code mal posten (falls du Zeit zum Suchen hast :smiley:). Ich würde aba vorerst gerne erfahren wie man Quellcode hier gescheit darstellen kann. Kann mir das bitte jemand kurz erklären?

Gruß AT

Hossa :smile:

Für Quelltexte bietet sich das

-Tag an. Wenn du z.B. das hier eingibst:



    
    int main (int argc, char\* argv[])
    {
        //machwas
    }




sieht das nachher so aus:



    
    int main (int argc, char\* argv[])
    {
     //machwas
    }



Viele Grüße

Hasenfuß