• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dostaje raka

Cloud VPS
–2 głosów
641 wizyt
pytanie zadane 23 sierpnia 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)
#include <iostream>

using namespace std;

int main()
{
	Osoba nhu;
	nhu->wczytaj();
	
	return 0;
	}
	class Osoba
	{
		public:
		int wiek;
		string imie;
		
		public:
		void wczytaj()
		{
			cin>>wiek>>imie;
			cout<<wiek;
			}
		
		};

Blad: Osoba was not declared in this scope

Nie wiem o co chodzi temu kompilatorowi raka dostaje od tego prosze o pomoc

z gory dzieki

3 odpowiedzi

+1 głos
odpowiedź 23 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
#include <iostream>

using namespace std;

class Osoba
{
public:
    int wiek;
    string imie;

public:
    void wczytaj()
    {
        cin>>wiek>>imie;
        cout<<wiek;
    }

};

int main()
{
    Osoba nhu;
    nhu.wczytaj();

    return 0;
}

 

0 głosów
odpowiedź 23 sierpnia 2015 przez Krawiec91 Pasjonat (19,600 p.)
Umieść definicję klasy Osoba przed main()
komentarz 23 sierpnia 2015 przez Krawiec91 Pasjonat (19,600 p.)
I jeśli chcesz korzystać z operatora ->, musisz wcześniej zadeklarować wskaźnik na obiekt klasy Osoba.
komentarz 23 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
nawet jak uzywam kropki mam ten sam komunikat
komentarz 23 sierpnia 2015 przez Krawiec91 Pasjonat (19,600 p.)
Przerzuciłeś definicję klasy Osoba przed main()?
komentarz 23 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
tak przerzucilem
komentarz 23 sierpnia 2015 przez adrian17 Mentor (354,720 p.)
Pokaż obecny kod i obecne błędy.
komentarz 23 sierpnia 2015 przez Krawiec91 Pasjonat (19,600 p.)
#include <iostream>
 
using namespace std;
 
    class Osoba
    {
        public:
        int wiek;
        string imie;
         
        void wczytaj()
        {
            cin>>wiek>>imie;
            cout<<wiek;
        }
         
     };

int main()
{
    Osoba* nhu;
    nhu->wczytaj();
     
    return 0;
    }


Zobacz, czy to zatrybi.

komentarz 23 sierpnia 2015 przez criss Mędrzec (172,570 p.)
@Krawiec, raczej najpierw cos stworz pod tym wskaznikiem :P w taki sposob dostaniesz crasha.
komentarz 23 sierpnia 2015 przez adrian17 Mentor (354,720 p.)

Stworzyłeś tylko wskaźnik na obiekt, nie sam obiekt. Można po prostu:

Osoba nhu;
nhu.wczytaj();

Edit: Krawiec: ups, sorry, myślałem że oryginalny autor to napisał.

komentarz 23 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
C4droid, jestem sflustrowany czy ja naprawde nie umiem obiektu zaadeklarowac
komentarz 23 sierpnia 2015 przez Krawiec91 Pasjonat (19,600 p.)
@Criss, no fakt.;)
0 głosów
odpowiedź 23 sierpnia 2015 przez niezalogowany

Słuchaj, jak chcesz to zrobić za pomocą ->, czyli za pomocą wskaźnika, to ten wskaźnik musi pokazywać na jakiś obiekt! A on nie pokazuje, czyli że powinno być tak:

#include <iostream>

using namespace std;

class Osoba
{
public:
    int wiek;
    string imie;

    void wczytaj()
    {
        cin >> wiek >> imie;
        cout << wiek;
    }
};

int main()
{
    Osoba *nhu;
    Osoba obiekt;
    nhu=&obiekt;
    nhu->wczytaj();

    return 0;
}

A jak chcesz jednak bez wskaźnika, to wystarczy z kropką, o tak:

#include <iostream>

using namespace std;

class Osoba
{
public:
    int wiek;
    string imie;

    void wczytaj()
    {
        cin >> wiek >> imie;
        cout << wiek;
    }
};

int main()
{
    Osoba nhu;
    nhu.wczytaj();

    return 0;
}

Tyle, działa ;)

Edit: Aha! Jeszcze coś: a jak to nie zadziała, to będziesz musiał używać krem z filtrem ;D

komentarz 23 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
nie dziala :(
komentarz 23 sierpnia 2015 przez niezalogowany
Jak to nie działa?! Przecież to skopiowałem wprost z Code::Blocks'a, przetestowałem i wszystko działa! Nie wiem o co chodzi, powinno działać, u mnie jest git :| Czy na pewno po prostu skopiowałeś kod który napisałem?
komentarz 24 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
Powaznie nie dziala kompilator C4droid :(
komentarz 24 sierpnia 2015 przez niezalogowany
To ja mam zwykłego MinGW. Po sprawdzeniu czym jest ten C4droid, już wiem, że to IDE na Androida i do tego płatne :| Nie wiem czemu nie działa, sprawdź na kompie na Code::Blocks'ie, Visualu, czy czego tam używasz, powinno działać O_o Może ten C4droid jednak nie jest taki dobry.
komentarz 24 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
Zrestartowalem kilka razy tablet i zaczelo dzialac :)
komentarz 24 sierpnia 2015 przez niezalogowany
No widzisz! Czyli, że nie ma tego złego, co by na dobre nie wyszło ;) No, ważne, że działa :)

Podobne pytania

0 głosów
2 odpowiedzi 281 wizyt
pytanie zadane 15 lipca 2018 w Offtop przez NIMuser Stary wyjadacz (11,030 p.)
0 głosów
0 odpowiedzi 649 wizyt
0 głosów
1 odpowiedź 1,491 wizyt

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,909 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...