• 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

Object Storage Arubacloud
0 głosów
5,377 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 (194,920 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ź 389 wizyt
0 głosów
1 odpowiedź 1,501 wizyt
pytanie zadane 9 listopada 2017 w C# przez garris Użytkownik (660 p.)
0 głosów
3 odpowiedzi 3,112 wizyt
pytanie zadane 20 września 2017 w Java przez Dethavel Początkujący (280 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...