Syntaxfrage: temporaeres Objekt an Funktion uebergeben



  • Kurze Beschreibung meines Problems:
    Ich habe eine Klasse ohne default-Ctor

    class A {
    /* ... */
    public:
      A(int i);
    };
    

    Und eine Funktion die eine Referenz auf diese Klasse als Argument nimmt

    void f(A const& a, int i, int j);
    

    Und moechte diese Funktion nun mit einer temporaeren Variablen aufrufen. Die triviale Methode waere ja wie folgt:

    int main() 
    {
      /* ... */
      A mya(5);
      f(mya, 16, 32);
      /* ... */
    }
    

    Da ich aber das Objekt in diesem Fall nur innerhalb der Funktion brauche, hatte ich an folgendes gedacht:

    int main() 
    {
      /* ... */
      f(A mya(5), 16, 32);  //temporaeres A mit 5 initialiseren
      /* ... */
    }
    

    Das schluckt mein CINT aber nicht:

    error: parse error before `(' token
    

    Wie mach ichs richtig?



  • pumuckl schrieb:

    ...
    Da ich aber das Objekt in diesem Fall nur innerhalb der Funktion brauche, hatte ich an folgendes gedacht:

    int main() 
    {
      /* ... */
      f(A mya(5), 16, 32);  //temporaeres A mit 5 initialiseren
      /* ... */
    }
    

    Das schluckt mein CINT aber nicht:

    error: parse error before `(' token
    

    Wie mach ichs richtig?

    f(A(5), 16, 32); // Temporäre Variablen sind unbenannt

    cu André



  • Danke. Mein brett vorm Kopf mal wieder...


Anmelden zum Antworten