인프런 커뮤니티 질문&답변
[10:22] Doctor.h와 Patient.h가 분리되어 있을 때는 meetDoctors함수를
해결된 질문
작성
·
391
3
안녕하세요?
Doctor.h와 Patient.h가 분리되어 있을 때는 meetDoctors함수는 Patient.h에 있기 때문에 Doctor.h로 옮길 수가 없는데
이럴땐 어떻게 해야하나요?
감사합니다.
<코드>
#pragma once
#include <iostream>
#include <string>
#include <vector>
#include "Doctor.h"
//class Doctor;
class Patient
{
private:
std::string m_name;
std::vector<Doctor*> m_doctors;
public:
Patient(const std::string& name_in)
: m_name(name_in)
{}
void addDoctor(Doctor* new_doctor)
{
m_doctors.push_back(new_doctor);
}
void meetDoctors()
{
for (auto& elem : m_doctors)
std::cout << "meet doctor : " << elem->m_name << std::endl;
}
void setName(const std::string& name_in)
{
m_name = name_in;
}
friend std::ostream& operator<<(std::ostream& out, const Patient& patient)
{
out << patient.m_name;
/*for (auto& elem : patient.m_doctors)
out << *elem;*/
return out;
}
friend class Doctor;
};
=====================자답============
이렇게 해결을 했는데 맞게 한건가요? ㅠㅠ
.h, .cpp로 선언과 정의를 분리하고
cpp에서 전부 인클루드하고


헤더 두 군데서 모두 전방선언 해줬습니다.


감사합니다.





