Visual C++ ( expression must have (pointier-to-) function type
Ostatnio zmodyfikowano 2013-11-14 18:05
4you Temat założony przez niniejszego użytkownika |
Visual C++ ( expression must have (pointier-to-) function type » 2013-11-14 15:46:10 o co tu chodzi: expression must have (pointier-to-) function type
stworzylem w klasie " char zmienna_tekstowa;" w main() tworze nowa klase: klasa nazwa_klasy; i gdy pisze nazwa_klasy.zmienna_tekstowa("nazwa_zmiennej_tekstowej"); wywala mi błąd: expression must have (pointier-to-) function type
|
|
kubawal |
» 2013-11-14 15:50:19 nazwa_klasy.zmienna_tekstowa("nazwa_zmiennej_tekstowej") |
Czemu korzystasz ze składowej jak z metody? |
|
4you Temat założony przez niniejszego użytkownika |
» 2013-11-14 15:57:33 Nie do końca rozumiem o co chodzi. Może mi to jakoś rozpiszesz? Jak mam wywołać nazwe jakiegoś obiektu w klasie? |
|
pekfos |
» 2013-11-14 17:05:23 |
|
4you Temat założony przez niniejszego użytkownika |
» 2013-11-14 17:45:55 no tak, to wiem. Ale tak jak wyżej napisałem to mi wywala błąd. Otóż to mój kod klasy w skrócie: class Nacja() { string klasa; };
int main() { Nacja obiekt; obiekt.klasa( "tralalala" ); }
i niby gdzie tu jest blad? |
|
Monika90 |
» 2013-11-14 17:51:28 Składowa klasa jest prywatna, a poza tym std::string nie ma operatora (). To są absolutne podstawy. |
|
4you Temat założony przez niniejszego użytkownika |
» 2013-11-14 17:57:28 @Monika90, oczywiście masz rację, ale sprawdzałem to też z: #include <iostream> #include <conio.h> #include <string> using namespace std;
class Nacja { public: char PiechotaN[ 10 ], RycerzN[ 10 ], KonnyRycerzN[ 12 ]; int PiechotaI, RycerzI, KonnyRycerzI; int P_atak, P_obrona, R_atak, R_obrona, KR_atak, KR_obrona; };
void wybor( int wybor ) { switch( wybor ) { case 1: { Nacja Rzymianie; cout << "\n\tWybrales Rzymian."; Rzymianie.KonnyRycerzN( "Konny Rycerz" ); break; } case 2: { Nacja Germanie; cout << "\n\tWybrales German."; break; } case 3: { Nacja Galowie; cout << "\n\tWybrales Galow."; break; } default: { cout << "Nie mamy " << wybor << " nacji, mamy tylko 3.\n\n\tKONIEC GRY"; break; } } }
int main() { int w, LP, LR, LKR; cout << "1.Rzymianie\n2.Germanie\n3.Galowie\n\tWybor: "; cin >> w; wybor( w ); getch(); }
I niestety wywala błąd tylko i wyłącznie w Rzymianie.KonnyRycerzN("Konny Rycerz"); |
|
Monika90 |
» 2013-11-14 18:02:57 A co chesz osiągnąć za pomocą Rzymianie.KonnyRycerzN( "Konny Rycerz" ); ? Jeżeli chcesz pzypisać ten łańcuch znaków, to musisz użyć strcpy. Ale radzę ci zmiast tablic znaków używać std::string, wtedy będziesz mógł użyć po prostu operatora =. class Nacja { public: string KonnyRycerzN; };
Rzymianie.KonnyRycerzN = "Konny";
|
|
« 1 » 2 |