Day03-01. 생성자 함수
C,C++/CONCEPT 2018. 3. 7. 11:33 |1. 생성자 함수
1-1. 객체 등록시 자동호출이 되어지는 함수
역할 : 객체필드 초기화 (쓰레기값 방지), 객체등록 (디폴트)
1-2. 접근지정자를 주로 public으로 지정
1-3. 오버로딩이 가능하다 (명시적 + 암시적)
1-4. const member function으로 만들 수 없다
1-5. 리턴타입이 없다
1-6. 함수이름이 클래스이름과 동일하다
1-7. 디폴트 생성자 함수는 생성자 함수를 명시적으로 제공하지 않을 경우에만 제공된다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <iostream> using namespace std; class A { // 1. 생성자 함수 int a; public: //A() //{ // a = 0; // 이걸 안넣으면 쓰레기값 (쓰레기값 방지) // cout<<"첫번째 생성자"<<a<<endl; //} //A(int i) //{ // a = i; // cout<<"두번째 생성자"<<a<<endl; //} A(int i = 1) { a = i; cout<<"디폴트 매개변수 사용\n"<<a<<'\t'<<endl; int *p = new int[i]; } }; void main() { // A *p = new A; // 동적할당 A aa; // 첫번째 생성자 A bb(9); // 두번째 생성자 } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <iostream> using namespace std; class A { // 1. 생성자 함수 int a; public: A() { a = 0; // 이걸 안넣으면 쓰레기값 (쓰레기값 방지) cout<<"첫번째 생성자"<<a<<endl; } A(int i) { a = i; cout<<"두번째 생성자"<<a<<endl; } /*A(int i = 0) { a = i; int *p = new int[i]; cout<<"디폴트 매개변수 사용\n"<<p<<'\t'<<a<<endl; }*/ }; void main() { // A *p = new A; // 동적할당 A aa; // 첫번째 생성자 A bb(9); // 두번째 생성자 } | cs |
'C,C++ > CONCEPT' 카테고리의 다른 글
Day03-03. 생성자와 소멸자의 개념 (0) | 2018.03.07 |
---|---|
Day03-05. 생성자함수, 복사생성자함수, 소멸자함수 호출순서 (0) | 2018.03.07 |
Day02-01. 암시적 오버로딩, 명시적 오버로딩 (0) | 2018.03.06 |
Day02-01. C++ 레퍼런스변수 (0) | 2018.03.06 |
C 포인터에 대해서 (0) | 2018.03.05 |