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

  • Sk8erPeter

    nagyúr

    Sziasztok!

    Van egy grafika házim, a lényege, hogy egérrel kell mászkálni labirintusban, nem is nagyon részletezném, igazából csak C++ szintaktikai kérdésem van:
    ha így példányosítom az osztályt (globálisan elérhető lesz, mert a feladat miatt így kell most megcsinálnom):
    My_Mouse_Class MyMouse();
    és aztán így hívom meg egy függvényen belül:
    MyMouse.Display();

    Akkor Visual Studio hibaüzenete:
    "Error: expression must have class type"

    Ha viszont így példányosítom:
    My_Mouse_Class MyMouse;
    és ugyanúgy hívom meg:
    MyMouse.Display();
    akkor semmi baja.
    Egyetlen különbség a hibás változathoz képest a zárójel hiánya.

    A My_Mouse_Class konstruktora maga semmi különlegesség, egyelőre üres, csak inicializáló lista van ott:
    My_Mouse_Class(void): mouse_x(0.0), mouse_y(0.0) {
    }

    Vajon a void kulcsszó miatt van az eredeti hiba? A fordító ilyenkor hibát érzékel, ha mégis a zárójeles módon hívjuk a konstruktort? Nem, a void tök mindegy, ott van-e. Legalábbis tippre amúgy is "odafordítódik".
    Vagy miért?
    Lehet, hogy rég volt C++, de hirtelen nem vágom a magyarázatot.

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