Odwoływanie się do metody innej klasy

0

Witam,
mam problem z odwoływaniem się wewnątrz metody jednej klasy do metody innej klasy z innego pliku.
na przykład:

class A 
{
...
public:
void fun1();
...
}
void A::fun1()
{}

class B
{
...
public:
void fun2();
...
}
void B::fun2()
{
fun1()
} 

Z góry dzięki za pomoc

0

Ale co Ty chcesz zrobić? Przecież niestatyczną funkcję składową możesz wywołać tylko na rzecz konkretnego obiektu.

0

Metody (niestatyczne) wywołujesz na rzecz jakiś obiektów. Taki obiekt możesz przekazać np. jako argument metody.

void B::fun2(const A& a)
{
   a.fun1();
}

...

A a;
B b;
b.fun2(a);
0
void B::fun2()
{
A* x = new A;
x->fun1();
delete x;
}
0
Taumas napisał(a):
void B::fun2()
{
A* x = new A;
x->fun1();
delete x;
}

To żeś przekombinował. Znacznie łatwiej i mniej błędogennie jest:
void b::fun2() { A().fun1(); }

0

Dzięki- sprawdzę wszystkie rozwiązania. i jeszcze jedno pytanie- co zrobić jeśli klasy są w dwóch oddzielnych plikach?

0
Pawellos napisał(a):

Dzięki- sprawdzę wszystkie rozwiązania. i jeszcze jedno pytanie- co zrobić jeśli klasy są w dwóch oddzielnych plikach?

Używać plików nagłówkowych (bądź deklaracji zapowiadających) i prawidłowego linkowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1