• 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,866 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 (98,160 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,500 p.)
Ostatecznie jeszcze statyczne gettery (nie polecam) :)
komentarz 26 maja 2017 przez j23 VIP (105,900 p.)

@Hipcio, dlaczego obiekt_klasy1 przekazujesz przez wartość?

komentarz 28 maja 2017 przez Hipcio Szeryf (98,160 p.)

@j23, bo jestem Januszem programowania.

Podobne pytania

0 głosów
1 odpowiedź 135 wizyt
0 głosów
1 odpowiedź 448 wizyt
pytanie zadane 9 listopada 2017 w C# i .NET przez garris Użytkownik (660 p.)
0 głosów
3 odpowiedzi 1,229 wizyt
pytanie zadane 20 września 2017 w Java przez Dethavel Początkujący (280 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

65,786 zapytań

112,438 odpowiedzi

237,540 komentarzy

46,728 pasjonatów

Przeglądających: 200
Pasjonatów: 14 Gości: 186

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.

...