Forum » Programiranje » C++ Problem s stringi
C++ Problem s stringi
ProGTX ::
no, imam sledeč, precej beden problem:
inicializiram string. enostavno. poskusim dostopati do metod stringa. moralo bi biti enostavno, pa ni.
recimo:
string a("nov niz"); // ustvarim nov niz
a.append(" se daljsa"); // in mu dodam še par besed
no, ta preprosta zasnova se noče prevesti. compiler namreč pravi da zahtevam metodo append() ki je ni v classu string.
string je class, je tako? no, je. našel sem dokumentacijo, ki mi narekuje takšno uporabo. pa vedar ne dela. ponekod na tujih forumih sem videl predlog, da se zamenja "operator." z "operator->". mislim, da je to narobe, pa sem vseeno poskusil in mi ni uspelo. kaj je to?
sicer je "uradna" napaka tale:
10 [mojProgram] request for member `empty' in `rarpath', which is of non-class type `std::string ()()'
opazil sem tudi, da se ta problem ne pojavlja samo s stringi. a kdo slučajno ve, kaj je to?
inicializiram string. enostavno. poskusim dostopati do metod stringa. moralo bi biti enostavno, pa ni.
recimo:
string a("nov niz"); // ustvarim nov niz
a.append(" se daljsa"); // in mu dodam še par besed
no, ta preprosta zasnova se noče prevesti. compiler namreč pravi da zahtevam metodo append() ki je ni v classu string.
string je class, je tako? no, je. našel sem dokumentacijo, ki mi narekuje takšno uporabo. pa vedar ne dela. ponekod na tujih forumih sem videl predlog, da se zamenja "operator." z "operator->". mislim, da je to narobe, pa sem vseeno poskusil in mi ni uspelo. kaj je to?
sicer je "uradna" napaka tale:
10 [mojProgram] request for member `empty' in `rarpath', which is of non-class type `std::string ()()'
opazil sem tudi, da se ta problem ne pojavlja samo s stringi. a kdo slučajno ve, kaj je to?
ProGTX ::
akhm... najprej se skoraj dve uri matram da bi našel rešitev, prebrskam forume in naposled še odprem tole temo, potem pa v manj kot desetih minutah (skoraj) odkrijem problem.
v resnici sem jaz inicializiral niz takole:
string rarpath();
in mi ni delovalo. potem sem naredil le:
string rarpath("");
in to je delovalo.
v redu, samo mene pa še vedno zanima čemu problemi, našteti zgoraj. zakaj ne zna string to sam inicializirati? zakaj prihaja do tega errorja?
v resnici sem jaz inicializiral niz takole:
string rarpath();
in mi ni delovalo. potem sem naredil le:
string rarpath("");
in to je delovalo.
v redu, samo mene pa še vedno zanima čemu problemi, našteti zgoraj. zakaj ne zna string to sam inicializirati? zakaj prihaja do tega errorja?
redo ::
Tole
pomeni nekaj drugega kot tole
Prvo pomeni, rarpath je funkcija, ki ne prejme nobenega argumenta in vrne objekt string. V drugem pomeni rarpath je instanca razreda string (klican privzeti konstruktor) (ali tako nekako).
string rarpath();
pomeni nekaj drugega kot tole
string rarpath;
Prvo pomeni, rarpath je funkcija, ki ne prejme nobenega argumenta in vrne objekt string. V drugem pomeni rarpath je instanca razreda string (klican privzeti konstruktor) (ali tako nekako).
redo ::
In kompajler ti z napako hoče dopovedati točno to. Da hočeš dostopati do člana (ne vem jaz pravilnih slovenskih izrazov za tole) empty funkcije rarpath. To ne gre.
Lahko poskusiš tudi
in boš videl, kako se bo napaka spremenila.
Lahko poskusiš tudi
string rarpath(int);
in boš videl, kako se bo napaka spremenila.
ProGTX ::
aha, vidim. sploh nisem pomislil da bi to štel kot definicijo funkcije - mislim sem pač da je to privzeti konstruktor. najlepša hvala, zdaj vsaj razumem. bi bilo pa lepo, če bi mi compiler kako, no, lepše povedal za problem. pri php-ju je stvar dosti bolj eksaktna :P
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [UWP] [C#]Oddelek: Programiranje | 4220 (2250) | BivšiUser2 |
» | c++ napakaOddelek: Programiranje | 1729 (1054) | lebdim |
» | Program ne deluje več (strani: 1 2 )Oddelek: Programiranje | 6650 (5388) | Genetic |
» | uporaba C++ unmanaged kode v C#.NET projektuOddelek: Programiranje | 1916 (1639) | krho |
» | c# vprasanjeOddelek: Programiranje | 1861 (1540) | user4683 |