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

Dostep do zmiennej z innej klasy

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
5,911 wizyt
pytanie zadane 25 maja 2017 w C i C++ przez mrdropex Początkujący (430 p.)

Witam

mam maly problem, przykladowy kod:

class klasa1
{
     public:
      int liczba;


}



class klasa2
{

public:

int liczba2;

void funkcja()
{
   liczba2 = liczba;


}



}

 

i juz wywala blad ze nie moze znalesc zmiennej , ta klase pierwsza utworzylem jako obiekt ale w main() i tylko tam mam dostep do zmiennych a chcialbym miec tez dostep w innej klasie

pomocy :(

komentarz 25 maja 2017 przez Patryk Krajewski Nałogowiec (26,170 p.)
Daj cały kod i przykład użycia w którym ci nie działa
komentarz 30 maja 2017 przez daniell89 Nowicjusz (240 p.)
Pytanie powinno być otagowane jako C++ a nie C# :)

1 odpowiedź

0 głosów
odpowiedź 25 maja 2017 przez niezalogowany

Podeślij metodzie klasy pierwszej obiekt klasy drugiej. Zmienne w klasie zawsze będą dotyczyć obiektu tej klasy.

#include <iostream>
using namespace std;

class Klasa1
{
public:
    int liczba;
};

class Klasa2
{
public:

    int liczba2;

    void funkcja( Klasa1 obiekt_klasy1 )
    {
        liczba2 = obiekt_klasy1.liczba;
    }
};

int main()
{
    Klasa1 a;
    a.liczba = 200;

    Klasa2 b;
    b.funkcja(a);

    cout<<b.liczba2<<endl;
}

PS. Pamiętaj o średniku po klamrze kończącej ciało klasy.

PPS. Jeżeli chcesz, aby zmienna nie dotyczyła obiektu, a znajdowała się wewnątrz klasy możesz zadeklarować ją jako statyczną (taką samą dla wszystkich obiektów):

#include <iostream>
using namespace std;

class Klasa1
{
public:
    static int liczba;
};
int Klasa1::liczba = 200;

class Klasa2
{
public:
    int liczba2;

    void funkcja()
    {
        liczba2 = Klasa1::liczba; // odwołanie za pomocą zasięgu
    }
};

int main()
{
    Klasa1 a;

    Klasa2 b;
    b.funkcja();

    cout<<b.liczba2<<endl;
}

 

komentarz 25 maja 2017 przez redie Obywatel (1,490 p.)
ewentualnie jeszcze class Klasa2: public Klasa1 :) i wtedy widzi wszystko :P
komentarz 25 maja 2017 przez CzikaCarry Szeryf (75,340 p.)
Ostatecznie jeszcze statyczne gettery (nie polecam) :)
komentarz 26 maja 2017 przez j23 Mędrzec (195,240 p.)

@Hipcio, dlaczego obiekt_klasy1 przekazujesz przez wartość?

komentarz 28 maja 2017 przez niezalogowany

@j23, bo jestem Januszem programowania.

Podobne pytania

0 głosów
1 odpowiedź 617 wizyt
0 głosów
1 odpowiedź 1,646 wizyt
pytanie zadane 9 listopada 2017 w C# przez garris Użytkownik (660 p.)
0 głosów
3 odpowiedzi 3,749 wizyt
pytanie zadane 20 września 2017 w Java przez Dethavel Początkujący (280 p.)

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 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

...