Hirdetés

Új hozzászólás Aktív témák

  • kemkriszt98

    tag

    Sziasztok,

    A következő kérdésem lenne:
    Adott egy osztály(leegyszerüsítve) :
    class A{
    valami* b;
    int n;
    ...
    public:
    A();
    A(A&);
    ~A();
    static A initFromFile(string);
    void operator=(A);
    ...getters/setters...
    }

    És persze a hozzá tartozó implementációk. Most nem írom be, hogy ne legyen túl hosszú de ha szükséges, azonnal pótolom.

    A copy constructor és az operator is annyit csinál, hogy a paraméterben kapott objektum n-jét felhasználva lefoglal helyet és átmásolja a sorozat elemeit.

    Na már most a probléma az, hogy valahol a kódban deklarálok egy A objektumot majd később probálom értékül adni neki az initFromFile által visszatérített objektumot.. két féle képpen próbáltam:

    A a = A::initFromFile("asd");
    eredetiAvaltozo = a;

    és

    eredetiAvaltozo = A::initFromFile("asd");

    Mind a kétszer ugyan azt a hibát adja a fordító, hogy nincs megfelelő konstruktor.
    Az első esetben sejtem, hogy valami olyasmi lehet a baj, hogy a copy konstruktor hívódna, csak az cím szerint várja a értéket, és a függvény visszatérési értékét nem lehet címszerint átadni. Ha igazam van ( vagy legalább közel járok) akkor megmondaná valaki, hogy erre mi a megoldás? Ha tévedek akkor meg azt, hogy akkor mi a probléma...

    A második esetet egyáltalán nem értem.. ott olyasmi folyik a háttérben amiről fogalmam sincs :))
    A hiba egyébkén mindkét esetben a függvény hívásának sorában jelentkezik, nem benne vagy ilyenek..

    Előre is kösz a segítséget.

Új hozzászólás Aktív témák