본문 바로가기
01.Bit 단기/C++

26_has a 객체초기화

by chojju 2018. 5. 3.
반응형

#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

댓글