반응형
안녕하세요. 훈츠입니다. 금일은 클래스간 관계와 생성자 상속과 호출에 대해 정리 해보도록 하겠습니다.
클래스 관계 설정 ( 클래스 계통도 )
is - a 관계 ( 상속 )
-
접근 지정자를 통한 상속 관계
has - a 관계
-
다른 클래스를 멤버로 가지고 있는 관계
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//훈스 블로그---------------------------------------------------------------------------------------------------코드//
class A {
public: void Print() { cout << "A 클래스"; }
};
class B : public A{ }; //is a 관계
class C {
public: A a; //has a 관계
};
int main()
{
B b;
b.Print();
C c;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
생성자 상속과 호출
-
기본 생성자는 상속되지 않는다.
-
생성자에 매개변수가 있는 경우, 파생 클래스에서 상속 받은 클래스의 생성자 ㅍㅍㅍㅍㅍㅍㅍㅍㅍㅍㅍ
-
상속 관계에서 생성자 호출과 소멸자 호출 순서
-
상속 순서 = A {} , B : A {}, C : B {}
-
생성자 호출 순서 A -> B -> C
-
소멸자 호출 순서 C -> B -> A
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//훈스 블로그---------------------------------------------------------------------------------------------------코드//
class A {
private:
int nVal;
public:
A(int val) : nVal(val) { cout << "A 클래스생성자\n"; }; //생성자에서 초기화 하기
~A() { cout << "A 클래스소멸자\n"; };
};
class B : public A {
public:
B(int val) : A(val){ cout << "B 파생클래스생성자\n"; }; //A 클래스 생성자 호출
~B() { cout << "B 파생클래스소멸자\n"; };
};
int main()
{
B b(2);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'컴퓨터 언어 > C++' 카테고리의 다른 글
[C++] C++ 13일차 가상함수와 다형성 (0) | 2020.04.15 |
---|---|
[C++] C++ 12일차 상속 4 (0) | 2020.04.14 |
[C++] C++ 10일차 상속 2 (0) | 2020.04.10 |
[C++] C++ 9일차 상속 1 (0) | 2020.04.09 |
[C++] C++ 9일차 클래스 3 생성자, 소멸자, this (0) | 2020.04.09 |