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;
}