Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: string ei toimi

KoodiNoppa [23.03.2007 20:24:15]

#

Aloin tässä ihan aikani kuluksi ja c++-harjoitukseksi tekemään yleisten käyttöjärjestelmien tapaista käyttöliittymää mahdollisesti johonkin myöhempään peliin/ohjelmaan. Sain jopa luokat toimimaan ongelmitta, edellisen kerran ei mikään toiminut kunnolla (ja tein siitä aiheen tänne). Mutta nyt en saa stringiä funktioon/aliohjelmaan (en tiedä nimitystä... se void-juttu). Compiler valittaa:
argument of type 'std::string (window::)()´does not match 'std::string (*)()'
stringiin liittyvät koodit järjestyksessä:

class window{
  public:
    int x,y;
    int w,h;
    string txt() ;
    bool act;
    bool grab;
    bool ex;
    int scroll;
};
void wtext(int x,int y,string str(),int col)
{
 }
wtext(windows[x].x,windows[x].y,windows[x].txt,0xffffff);

Tuo viimeisin on x:llä toimivan for-loopin sisällä. windows-olion alustus on tehty.

tesmu [23.03.2007 20:38:47]

#

koitappa tuon string txt() ; tilalla string txt;

KoodiNoppa [23.03.2007 20:44:03]

#

Toimii :)
Huomasin ettei kaikkee aina kannata kattoo netistä... tuli vähän mutkia matkaan ja lopputuloksena erehdyin katsomaan netistä stringin alustuksen ja siellä luki string str() :O

LaNu [26.03.2007 06:23:57]

#

KoodiNoppa kirjoitti:

Toimii :)
Huomasin ettei kaikkee aina kannata kattoo netistä... tuli vähän mutkia matkaan ja lopputuloksena erehdyin katsomaan netistä stringin alustuksen ja siellä luki string str() :O

Ihan oikein siellä netissä luki, mutta ei tuolla luokan määrittelyssä alusteta muuttujia :-) Muuttujathan alustetaan vasta luokan rakentajassa (constructor-sanalla google kertonee lisää).

Muutenkin tuo luokkasi on "väärin". Toimiva kyllä, mutta luokan jäsenmuuttujia ei ole syytä kirjoittaa public-osioon. Jos ne laittaa public:iin, hukkuu samalla koko luokkien käytön idea. struct:ia sopii käyttää noin - se ei vaadi edes public-sanaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta