• 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,742 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,500 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 (94,600 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 (103,060 p.)

@Hipcio, dlaczego obiekt_klasy1 przekazujesz przez wartość?

komentarz 28 maja 2017 przez Hipcio Szeryf (94,600 p.)

@j23, bo jestem Januszem programowania.

Podobne pytania

0 głosów
1 odpowiedź 120 wizyt
0 głosów
1 odpowiedź 419 wizyt
pytanie zadane 9 listopada 2017 w C# i .NET przez garris Użytkownik (660 p.)
0 głosów
3 odpowiedzi 1,110 wizyt
pytanie zadane 20 września 2017 w Java przez Dethavel Początkujący (280 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

64,043 zapytań

110,429 odpowiedzi

231,264 komentarzy

47,812 pasjonatów

Przeglądających: 274
Pasjonatów: 19 Gości: 255

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.

...