• 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

0 głosów
1,645 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 diablol Nałogowiec (26,520 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 Hipcio Szeryf (93,240 p.)

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,440 p.)
Ostatecznie jeszcze statyczne gettery (nie polecam) :)
komentarz 26 maja 2017 przez j23 VIP (100,260 p.)

@Hipcio, dlaczego obiekt_klasy1 przekazujesz przez wartość?

komentarz 28 maja 2017 przez Hipcio Szeryf (93,240 p.)

@j23, bo jestem Januszem programowania.

Podobne pytania

0 głosów
1 odpowiedź 117 wizyt
0 głosów
1 odpowiedź 394 wizyt
pytanie zadane 9 listopada 2017 w C# i .NET przez garris Użytkownik (660 p.)
0 głosów
3 odpowiedzi 1,047 wizyt
pytanie zadane 20 września 2017 w Java przez Dethavel Początkujący (280 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

63,166 zapytań

109,403 odpowiedzi

228,554 komentarzy

42,678 pasjonatów

Przeglądających: 87
Pasjonatów: 5 Gości: 82

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...