#c #class
#c #класс
Вопрос:
Я хочу использовать члены из класса A, вызываемые из класса B, имеет ли это смысл, когда я фактически объявляю класс B внутри A?
в более крупном коде я сталкиваюсь с такой возможностью, и мне было интересно, возможно ли это или я могу использовать другие альтернативы/
Я попытался удалить A внутри B, но это разрывает, и разработчик не позволяет мне этого делать. (www onlinegdb com) (с использованием c )
//main.cpp
#include <stdio.h>
#include "a.h"
class A objA;
int main()
{
A::get_instance().funA();
return 0;
}
//a.h
#include <stdio.h>
#include "b.h"
class A
{
public:
// Singleton instance
static Aamp; get_instance() //static memory allocation
{
static A instance;
return instance;
}
A();
~A();
void funA();
void funA_two();
//Member
B obj_b;
};
//a.cpp
#include "a.h"
A::A()
{ /*do nothing here*/}
A::~A()
{ /*do nothing here*/}
void A::funA()
{
printf("Hello Class Arn");
obj_b.funB();
}
void A::funA_two()
{
printf("I want to be called from class Brn");
}
//b.h
#include <stdio.h>
class B
{
public:
// Singleton instance
static Bamp; get_instance() //static memory allocation
{
static B instance;
return instance;
}
B();
~B();
void funB();
};
//b.cpp
#include "b.h"
//#include "a.h"
B::B()
{ /*do nothing here*/}
B::~B()
{ /*do nothing here*/}
void B::funB()
{
printf("Hello Class Brn");
//From here. how can I call the same A instance to call funA_two()?
}
actually, I would like to do some like a function pointer as C, to pass the funA_two to funB
Комментарии:
1. Класс B должен иметь свойство, содержащее ссылку на родительский класс A.
2. Или передать A в качестве параметра в метод B.,
B::funB(Aamp; a)