자식 클래스 개체가 부모 클래스 개체의 메서드를 제어 할 수 있도록 부모 클래스 개체를 자식 클래스 개체로 전달하려고합니다.C++ 클래스가 참조로 전달 될 수 있습니까?
그러나 이로 인해 헤더와 관련된 문제가 발생합니다. 클래스 중 하나를 선언하려고했으나 먼저 선언 된 클래스가 먼저 선언 된 클래스에서 읽는 데 문제가있는 것으로 보입니다.
모두 오류
는 DM의 안녕 세계 메소드를 호출하려고 생성자 '장치를 참조하십시오, 그들은 다음과 같습니다Use of undefined type 'DeviceManager'
Left of '->HelloWorld' must point to class/struct/union/generic type
...
//main.cpp
#include "parent.h"
void main()
{
cout << "Created DeviceManager\n";
DeviceManager* deviceManager = 0;
deviceManager = new DeviceManager;
cout << "Giving DeviceManager a device\n";
deviceManager->p = new Device(deviceManager);
cout << "Giving Device a reference to DevicenManager\n";
deviceManager->Share();
}
...
class DeviceManager;
class Device
{
public:
Device(DeviceManager* manager)
{
dm = 0;
this->dm = manager;
this->dm->HelloWorld();
}
DeviceManager* dm;
};
//device manager
class DeviceManager
{
public:
DeviceManager()
{
p = 0;
}
void HelloWorld()
{
//if this calls we know the child has control over the parent.
cout << "Hello World";
}
Device* p;
};
무엇을 참조하여 스스로를 전달합니까? 문제를 보여주는 몇 가지 코드를 공유 할 수 있습니까? 당신의 질문은 지금까지는 그것이 참조의 존재 여부에 의문을 제기하는 것처럼 느껴지므로 명확하지 않습니다. – lpapp
문제를 일으킨 코드를 알려주십시오. 객체가 자신을 참조로 전달하는 것은 완전히 허용 가능합니다. – ApproachingDarknessFish
은 일부 코드를 제공하므로 현재 상황이 이해되기 쉽습니다. – Anthony