정의 :
반환되는_데이터의_형 함수의_이름 <-
(인자의_목록){
/*함수의 내부 변수의 선언*/
/* 함수의 구현 내용*/
/* return 반환값;*/
}
- 값에 의한 호출 :
- 참조에 의한 호출 :
- 인라인(inline) 함수 : 프로그램의 실행 속도를 빠르게 하기 위한 함수.
형식 : inline 함수타입 함수명{ 실행할 내용 }
- 디폴트 인수 : 디폴트 인수는 오른쪽 부터 순서대로 지정함.
예시) void swap(int x, int y, int w=10, int h=20);
- 오버로딩(overloading) : 서로 다른 여러 개의 함수가 동일한 이름으로 정의 되는 것. = 함수의 이름은 동일하지만 인수의 개수나 타입을 다르게 함.
[클래스와 객체]
○ 클래스 : 객체를 찍어내기 위한 틀
형식 : class 이름{ 접근 지정자; 멤버 변수; 멤버 함수;}
○ 객체 : 프로그램 구성하는 독립적인 부품, 실세계와 시스템을 추상화한 것.
○ 클래스란 구현하고자 하는 것의 설계도이며, 객체는 클래스의 내용을 실체화 한 것.
- 접근 지정자 : 클래스의 멤버 변수나 멤버 함수들의 접근 가능성을 설정하는 키워드(private, protected, public 등 존재)
○ 일반적으로 클래스 생성 시, 멤버 변수는 데이터 은닉을 위해 private 부분에 선언하고 멤버 함수들은 public 부분에 선언함.
※ cpp(소스파일)의 내용을 헤더파일(.h)과 분할된 소스파일(.cpp)로 분할구현하기.
: 헤더 파일에 클래스 선언(Date 클래스) + Date.cpp(헤더파일에서 선언된 Date클래스 멤버 함수르 구현) + main.cpp(메인 함수를 구현)
※ 클래스 멤버 함수 구현 시 '::'은 사용 범위 결정 연산자로 해당 멤버 함수가 어느 클래스에 속하는 지 나타나기 위해 사용
예시) Date::GetDate() <- 클래스명::멤버 함수명
○ 생성자와 소멸자
- 프로그램이 데이터 멤버에 접근할 수 있는 방법은 멤버 함수를 이용하는 것이므로, 객체를 초기화하기 위해 '생성자'라는 함수가 필요함.
- 객체가 소멸하기 전 객체의 흔적을 지우기 위해 '소멸자'라는 함수가 사용됨.
● 생성자(Constructor)
- 객체가 생성될 떄, 자동으로 치기화 될 수 있도록 설계해야 함 -> c++에서는 새로운 객체가 생성될 떄 객체의 데이터 멤버 값을 초기화시킬 수 있는
클래스 생성자라는 특별한 멤버 함수를 제공함.
생성자는 컴파일러에 의해 호출되므로 생성자의 이름은 클래스의 이름과 같도록 정해져 있음.
※ 생성자는 리턴 값이 없어도 void형으로 선언하지 않음.
- 생성자는 전달인자를 받아들여 각각의 멤버 변수 값을 초기화함
- 생성자의 초기화 예시:
- 암시적 호출 : Date Today(2019,1,9);
- 명시적 호출 : Date Today = Date(2019,1,9);
- 포인터 사용 : Date *pToday = new Date(2019,1,9);
● 소멸자(Destructor)
- 객체의 임무가 끝나면 프로그램은 소멸자라는 이름을 가진 특별한 함수를 자동으로 호출함.
- 소멸자는 객체가 작업한 흔적을 깨끗하게 지우는 역할을 함.
- 형식 : 소멸자도 생성자와 동일하게 클래스 이름과 동일한 이름을 갖는다. 다만, 이름 앞에 ~(틸트 기호)가 붙음
Date::~Date(){}
※사용자가 명시적으로 소멸자를 호출할 수 없음 -> 프로그램이 종료될 때 자동으로 호출 됨.
사용자가 소멸자를 구현하지 않을 경우 컴파일러가 디폴트 소멸자를 제공함.
'스마트웹앱콘텐츠전문가 > C++' 카테고리의 다른 글
[객체 지향 언어의 특징][상속] (0) | 2019.01.14 |
---|---|
[friend와 연산자 오버로딩] (0) | 2019.01.11 |
[객체배열과 객체포인터] (0) | 2019.01.10 |
기초구문 (0) | 2019.01.08 |
개발 환경 구축 (0) | 2019.01.08 |