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 *= 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





Posted by 너래쟁이
: