반응형
** 생성자의 필요성
- 객체를 생성과 동시에 초기화 하기 위해서
- 객체는 생성과 동시에 초기화되는 것이 좋은 구조!
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 | struct Person { char name[10]; } int main(void) { Person p; cin>>p.name; if(p.name이 유효하지 않다면); return 0; } int main(void) { char name[10]; cin>>name; if(name이 유효하다면); { Person p= (name); } return 0; } | Crocus |
후자의 코딩법이 더 좋은 코딩이다. 잘 숙지해두기
** 생성자란?
- 객체 생성 시 반드시 한 번 호출되는 함수
- class와 같은 이름의 **함수**다.
- 리턴형이 없으며 리턴 하지도 않는다.
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 | class Person { char name[SIZE]; char phone[SIZE]; int age; public: Person() // 생성자 { name = "KIM"; phone = "013-113-1113"; age = 22; } // Person p("KIM","013-113-1113",22); 이렇게 한다면 생성자를 만들 수 있다. void ShowData(); }; void Person::ShowData() { cout<<"name : "<<name<<endl; cout<<"phone : "<<phone<<endl; cout<<"age : "<<age<<endl; } int main() { Person p; // 객체를 생성하면 위에서 자동으로 생성자에 의해 초기값이 들어간다. p.ShowData(); return 0; } | Crocus |
반응형
'Basic > C++' 카테고리의 다른 글
연산자 오버로딩 (0) | 2016.03.27 |
---|---|
생성자의 필요성 및 예제(2) (0) | 2015.11.24 |
class 캡슐화, 정보은닉 (0) | 2015.11.23 |
class 기본 예제 및 내부 및 외부접근 코드 (0) | 2015.10.06 |
클래스에 들어가기전, 구조체의 필요성 (0) | 2015.10.06 |