일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SERIAL
- preprocessing
- digitalRead
- Encapusulation
- java
- APP
- wpf
- Binary
- aduino
- length
- Barcode
- Pointer
- Overloading
- mfc
- parameter
- Read
- memory
- public
- sensor
- inheritance
- UNO
- Class
- stream
- Unity
- file access
- flutter
- Android
- compare
- atmega328
- Contour
- Today
- Total
목록Overloading (7)
폴크(FOLC)
# 특정 클래스의 멤버 변수(private, protected) 에 접근하기 위해서는 public 함수를 통해서 가능 > 수많은 멤버 변수를 접근하기 위해서 public 함수를 생성하기에는 무리 > 모든 멤버 변수를 직접 접근하기 위해서 friend 키워드 이용 ( 함수, 클래스 ) # 필요 > 멤버 함수를 호출하거나 멤버 변수에 직접 접근해야 하는 상황 - 연산자 재정의 과정에서 자주 발생 # 프렌드 함수 > friend 키워드를 이용하여 선언 ( 클래스 멤버 X ) - friend return_value functionName(XXXX XXXX); > 멤버 변수에 직접 접근 가능 # 프랜드 멤버 함수 > friend 키워드를 이용하여 선언 ( 클래스 멤버 X ) - friend return_value..
# 오버로딩 ( overloading ) > 함수의 이름을 동일(중복)하게 정의 하는것 ( 객체지향 - 다형성 ) > 함수의 이름은 1개만 선언 가능하지만 시그니처가 다르면 가능 - 시그니처 : 함수 선언부에 명시되어 있는 매개변수 리스트 -> 함수 이름의 종류를 최소화 하여 생성 가능 -> 함수 호출시에 매개변수나 타입을 신경쓰지 않고 호출 가능 # 조건 > 함수 이름이 같아야 한다. > 매개변수 개수와 타입이 달라야 한다. - 반환 타입이 다르더라도 시그니처가 같다면 정의 할 수 없다. # 소스 코드 # include class TEST { public: void SUM(int a, int b) { return (a + b); } float SUM(float a, float b) { return (a..
# 오버로딩 ( overloading ) > 함수의 이름을 동일(중복)하게 정의 하는것 ( 객체지향 - 다형성 ) > 함수의 이름은 1개만 선언 가능하지만 시그니처가 다르면 가능 - 시그니처 : 함수 선언부에 명시되어 있는 매개변수 리스트 -> 함수 이름의 종류를 최소화 하여 생성 가능 -> 함수 호출시에 매개변수나 타입을 신경쓰지 않고 호출 가능 # 조건 > 함수 이름이 같아야 한다. > 매개변수 개수와 타입이 달라야 한다. - 반환 타입이 다르더라도 시그니처가 같다면 정의 할 수 없다. # 소스 코드 public class TEST { public int SUM(int a, int b) { return (a + b); } public float SUM(float a, float b) { return ..
# 객체의 수명이 끝나는 시점에 컴파일러에 의해 자동으로 호출되는 함수 > 객체의 이름과 동일한 함수명으로 앞에 물결(tilt : ~ ) 를 붙여서 표기 # 특징 > 매개변수를 가지지 않는다. > 반환값이 없지만 void 로 선언하지 않는다. > 소멸자는 무조건 1개만 정의 할 수 있다. > const, volatile. static 으로 정의 할 수 없다. # 호출 > 프로그램 종료 : 데이터 영역에서 객체가 삭제되는 상황 > 함수의 블록/임시 블록 종료 : 스택 영역에서 객체가 삭제되는 상황 > delete 키워드 : 힙 영역에서 객체가 삭제되는 상황 # 소스 코드 TEST1::TEST1() { } TEST1::~TEST1() { // 소멸자 } int main(void) { TEST1 *pTTT1 ..
# 기본 생성자 ( default constructor ) > 초기값을 설정하는 매개변수가 없다. > 매개변수가 없는 상태에서 0 또는 NULL, 그리고 _T("") 등으로 초기값 설정 > 객체 생성시 초기값을 명시하지 않으면 컴파일러가 자동적으로 초기값 설정 # 특징 > 생성자가 정의되어 있지 않은 경우에만 컴파일러가 자동으로 제공 > 초기값을 설정하지 않은 상태로 객체를 생성하려면 기본 생성자를 직접 정의 > 생성자를 1개 이상 정의 하려면 함수 오버로딩 기법을 이용하여 정의 # 정의 방법 > 함수 오버로딩 방법 : 생성자에 매개변수 개수와 자료형을 중복되지 않게 정의 > 디폴트 인수 방법 : 모든 매개변수에 초기값을 명시하여 정의 # 소스 코드 TEST1::TEST1() { } TEST1::TEST..
# 기본 기능 > 클래스 내부에서 호출된다. > 클래스 외부에서도 호출이 가능하다. > 함수의 이름이 곳 포인터가 된다. ( 시작 주소 ) # 함수 디폴트 파라미터 > 함수에 파라미터를 전달하는 기본값을 설정 ( Varargs, ... 등 이용) > 우선 순위 위치 순서대로만 지정할 수 있다. ( 우->좌 ) # 함수 오버로딩 ( 다형성 ) > 함수 이름은 동일하고 파라미터 개수와 리턴값이 다름 ( 시그니처 ) # 함수 오버라이딩 ( 다형성 - 상속 관련 ) > 함수 이름과 파라미터 개수와 리턴값이 같음 ( 재정의 ) > 부모의 함수와 동일한 이름을 갖는 함수이지만 내용이 다름 # 예제 소스 class TEST_Car { private String _Name; private int _Year; TEST_..
# 함수 디폴트 파라미터 > 함수에 파라미터를 전달하는 기본값을 설정 > 함수 원형에만 지정할 수 있다. > 우선 순위 위치 순서대로만 지정할 수 있다. ( 우->좌 ) > 별도위치만 지정할 수 없다. # 함수 포인터 > 함수의 이름이 곳 포인터가 된다. ( 시작 주소 ) > 함수의 시작 주소를 가리키는 상수 ( 값 변경 불가 ) # 함수 포인터 선언 > typedef, auto 키워드 이용 > typedef void (*functionptr)(void); # 함수 오버로딩 ( 다형성 ) > 함수 이름은 동일하고 파라미터 개수와 리턴값이 다름 ( 시그니처 ) # 함수 오버라이딩 ( 다형성 - 상속 관련 ) > 함수 이름과 파라미터 개수와 리턴값이 같음 ( 재정의 ) > 부모의 함수와 동일한 이름을 갖는 ..