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

Przekazywanie zmiennej do metody w Klasie C++

VPS Starter Arubacloud
0 głosów
2,424 wizyt
pytanie zadane 12 października 2015 w C i C++ przez lukasz_m Obywatel (1,380 p.)
Witam

W jaki sposób przekazać wartość zmiennej z menu w programie głównym do metody Klasy?

Chciałbym, aby w QUIZie z drugiego odcinka programowania obiektowego można było

wybrać w MENU programu kategorię pytań i w zależności od wyboru wczytać pytania metodą Klasy

wczytaj()

3 odpowiedzi

+1 głos
odpowiedź 12 października 2015 przez emSon Stary wyjadacz (10,480 p.)
wybrane 14 października 2015 przez lukasz_m
 
Najlepsza

Bardzo prosto. Przy wyświetlaniu menu pytasz użytkownika o kategorię. Gdy wywołujesz funkcję wczytaj podsyłasz dodatkowy argument.

plik.wczytaj(kategoria); // plik zastępujesz nazwą swojego obiektu

A w metodzie wczytaj na początku dodajesz takie coś:

void Pytanie::wczytaj(int kat)
{
    fstream plik;
    if(kat==1)       plik.open("quiz1.dat", ios::in);
    else if(kat==2)  plik.open("quiz2.dat", ios::in);

I tak dalej. Wiadomo o co chodzi.

 

 

komentarz 13 października 2015 przez lukasz_m Obywatel (1,380 p.)
Wiem o co chodzi, ale nie potrafię tego zrobić

Mógłbym prosić o jakiś przykład przekazania dodatkowego argumentu do metody, przyznaję że mam z tym problem
komentarz 13 października 2015 przez emSon Stary wyjadacz (10,480 p.)
class Klasa
{
	int atrybut;
	
public:
	obiekt();
	void Metoda(int a, int b);
};

Klasa obiekt(5); // tworzenie obiektu klasa, przypisanie wartosci zmiennej atrybut . pominalem konstruktor

obiekt.metoda(4, 3); // wywolanie metody i przekazanie jej argumentow 4 i 3

int zmienna1 = 12; 
int zmienna2 = 33;

obiekt.metoda(zmienna1, zmienna2); // wywolanie funkcji i przekazanie jej argumentow w postaci dwoch zmiennych

Nie wiem ,czy o takie coś ci chodziło. Ten QUIZ to też przekształciłem podobnie jak ty. Jeśli chcesz to mogę ci dać kod, to sobie obejrzysz i zobaczysz.

komentarz 13 października 2015 przez lukasz_m Obywatel (1,380 p.)
Jak możesz to podeślij kod, byłbym wdzięczny:)
komentarz 13 października 2015 przez emSon Stary wyjadacz (10,480 p.)
main() -> http://wklej.org/id/1816150/

klasy.h -> http://wklej.org/id/1816151/

klasy.cpp -> http://wklej.org/id/1816152/

 

Generalnie mój QUIZ nie zadaje pytań a, b, c, d, ale pyta o słówka. Napisałem go z myślą o lekcjach angielskiego. Dodatkowo sprawdza ile pytań jest w pliku i na podstawie tego tworzy tablice dynamiczną. Można go łatwo przekształcić na ten z odcinka pana Zelenta, ale to już pozostawiam tobie ;). Jakbyś nie rozumiał czegoś z kodu, to pisz.
komentarz 14 października 2015 przez lukasz_m Obywatel (1,380 p.)

Ogarnąłem to i już wiem o co chodzi. Dzięki za pomocsmiley

0 głosów
odpowiedź 12 października 2015 przez criss Mędrzec (172,590 p.)
Tak samo jak przekazujesz argumenty do zwykłych funkcji. Najlepiej pokaż kod i co chcesz zrobić, bo pewnie cie nie rozumeim do końca.
komentarz 12 października 2015 przez lukasz_m Obywatel (1,380 p.)
int main()
{

  while(wybor_w_menu!=3)
  {
        cout<<"           QUIZ             "<<endl;
        cout<<"============================"<<endl;
        cout<<"1. GEOGRAFIA"<<endl;
        cout<<"2. MATEMATYKA"<<endl;
        cout<<"3. KONIEC PROGRAMU"<<endl;
        cout<<"============================"<<endl;
        cout<<"TWOJ WYBOR"<<endl;
        cin>>wybor;

Chciałbym, aby program po wczytaniu zmiennej  wybor w funkcji main otwierał konkretny plik tekstowy z pytaniami w metodzie wczytaj()  kod poniżej

void Pytanie::wczytaj()
{
    fstream plik;

    switch(wybor)
    {
       case 1: plik.open("geografia.txt",ios::in);break;
       case 2: plik.open("matematyka.txt",ios::in);break;
       case 3:{
                cout<<"KONIEC PROGRAMU"<<endl;
                exit(0);
              }break;
    }

 

komentarz 12 października 2015 przez criss Mędrzec (172,590 p.)

To niech wczytaj() przyjmuje jeden argument - string. Swoją drogą troche nie ogarniam co tu sie dzieje. Wypisywanie mozliwych wyborów jest w mainie, switch w metodzie, wybo w ogole nie wiadomo gdzie jest zadeklarowany.

Ja bym zrobil tak: deklarujsz sobie jakis tam string nazwa_pliku. Tworzysz switch: 

switch(wybor){
            case 1: nazwa_pliku = "geografia.txt"; break;
             //itd

}

Przekazujesz do wczytaj() tego stringa. Wczytaj jak mówiłem - przyjmuje 1 argument string. I po prostu otwierasz plik o nazwie <wartość stringa>. btw. poprzez konstruktor tez mozesz od razu otworzyć plik: 

ifstream plik(str.c_str()); //str - zalozmy ze tak sie nazywa argument w definicji wczytaj()

ifstream to "konkretniejszy" fstream - tzn. służy do wczytywania do programu. 
 

0 głosów
odpowiedź 14 października 2015 przez Danieter77 Bywalec (2,470 p.)
funkcja(int a,int b){
a = Zmienna z maina;
a = Zmienna z maina;
}
//mozez zrobic na wzkażnikach

 

Podobne pytania

0 głosów
1 odpowiedź 187 wizyt
0 głosów
3 odpowiedzi 1,195 wizyt
pytanie zadane 5 kwietnia 2020 w C i C++ przez nanautzin Obywatel (1,510 p.)
0 głosów
1 odpowiedź 255 wizyt
pytanie zadane 12 lipca 2022 w C i C++ przez cpp_lover Początkujący (290 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...