반응형
#include <iostream>
using namespace std;
/*
has a(소유)
소유 개체 초기화
포함개체의 생성은 암시적으로 인자가 없는
기본생성자를 호출시킨다.
포함개체 생성자의 호출을 명시적으로 제어할수
있다.
생성자 콜론초기화 영역에서 아래와 같이 호출
포함개체의 이름(인자전달, .,..)
*/
class A
{
string msg;
char ch;
public:
A() { cout << "A()" << endl; }
A(string s1, char c)
{
msg = s1;
ch = c;
cout << "A(인자전달)" << endl;
}
~A() { cout << "~A()" << endl; }
};
class B
{
string msg;
int number;
A a;
public:
B() :a("AAA", 'a')
{ cout << "B()" << endl; }
B(string s1, char ch, string s2, int n)
:a(s1, ch) //<== 내포객체명시적생성
{
cout << "B(인자전달)" << endl;
}
~B() { cout << "~B()" << endl; }
};
int main()
{
// A(인자전달) -> B(인자전달)
B b("a에게전달", 'a', "b에게전달",10);
// A(인자전달) -> B()
B b1;
return 0;
}
반응형
'01.Bit 단기 > C++' 카테고리의 다른 글
29_new delete연산자 (0) | 2018.05.03 |
---|---|
27_has a 최종 문법 코드 (0) | 2018.05.03 |
25_has a 객체생성순서 (0) | 2018.05.03 |
24_상수멤버함수 (0) | 2018.05.03 |
23_상수멤버변수 (0) | 2018.05.03 |
댓글