반응형
#includeusing namespace std; class Person { private: int m_age; char m_name[20]; char * m_addr; public: // 생성자 : 객체 멤버의 초기화 // 1) 클래스의 이름과 동일하다 !! // 2) 생성자는 리턴이 없다. --> void : 리턴 값이 없는경우 !!! // 3) 객체 생성시에 자동으로 호출을 해준다. // 4) 함수 오버로딩이 가능하다 !! // 5) 생성자를 작성하지 않으면 디폴트 생성자를 만들어 준다 !! // 6) 오버로딩된 다른 버전의 생성자가 있으면 컴파일러가 더이상 // 디폴트 생성자를 만들어 주지 않는다.. Person() { m_age = 20; strcpy(m_name, "홍길동"); m_addr = new char[200]; strcpy( m_addr, "충남 논산시 와야리"); } Person( int age) { m_age = age; strcpy(m_name, "홍길동"); } Person( int age , char * name) { m_age = age; strcpy( m_name, name); } // 소멸자 : // 객체가 소멸이 될때 자동으로 호출되는 함수 !! // 1) 클래스와 이름이 동일하다 !! // 2) 생성자와 구별하기 위해 ~을 붙여준다 !! // 3) 리턴이 없다. // 4) 오버로딩이 불가능 ( 1개만 존재한다) // 객체의 정리 작업 !! // 객체가 동적할당, 시스템의 자원 활용, 네트워크 자원등을 // 정리하는 작업 !! ~Person() { // 객체가 메모리에서 사라질때 // 자동으로 수행해야할 작업들 정의 !! delete [] m_addr; } void ShowInfo() { cout << "나이 : " << m_age <<"이름 :" << m_name << endl; } void Create(){} void Die(){} }; void main() { Person Bow; Bow.ShowInfo(); }
'C, C++' 카테고리의 다른 글
[C++] const 멤버의 이해, 활용, 사용 (0) | 2014.11.18 |
---|---|
[C++] 추상화 (0) | 2014.11.18 |
[C++] struct , 구조체!! (0) | 2014.11.18 |
[C++] 함수오버로딩 (0) | 2014.11.18 |
[C++] 문법적 개선사항 (0) | 2014.11.18 |