반응형
순환참조 발생 원인
1) header 파일에서 서로 include하는 경우
2) 서로 Dependency가 발생한 경우
순환참조의 문제점
1번의 경우 서로가 서로의 헤더를 계속 포함시켜 컴파일 시 문제가 발생한다.
2번은 서로가 호출하는 경우로 모듈간의 커플링이 타이트해지는 문제점이 있다.
해결방법
1) 전방 선언을 통한 헤더 구성
전방 선언을 통해 헤더의 include없이 포인터만으로 class를 선언 할 수 있다.
A.h
1
2
3
4
5
6
7
8
9
|
class B;//전방선언
class A {
public:
A() {};
void call(B* moduleB);
void printA();
};
|
cs |
b.h
1
2
3
4
5
6
7
8
|
class A;//전방선언
class B {
public:
B() {}
void call(A* moduleA);
void printB();
};
|
cs |
2) 인터페이스를 활용하여 느슨한 커플링을 만든다.
반응형
'C and C++' 카테고리의 다른 글
[C++][STL] STL을 활용하여 상한값 하한값 단순화 (0) | 2020.05.03 |
---|---|
[C++] Template include 오류 해결 방법 (0) | 2020.04.26 |
[C++][STL] size()함수 주의사항 (0) | 2020.01.29 |
[C++] 상속 팁 overide와 final 키워드 (0) | 2019.10.13 |
[C++] 복사 생성자와 복사 대입연산자의 차이점 (2) | 2019.01.13 |