일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pytorch zero to all
- 케라스 정리
- C언어 공부
- 파이토치 김성훈 교수님 강의 정리
- 해리스 코너 검출
- 딥러닝
- 모두의 딥러닝 예제
- c++공부
- c++
- 영상처리
- 가우시안 필터링
- Pytorch Lecture
- c언어 정리
- MFC 프로그래밍
- 파이토치
- 딥러닝 스터디
- object detection
- 컴퓨터 비전
- 딥러닝 공부
- matlab 영상처리
- 김성훈 교수님 PyTorch
- 파이토치 강의 정리
- 골빈해커
- TensorFlow
- pytorch
- c언어
- 모두의 딥러닝
- tensorflow 예제
- 팀프로젝트
- 미디언 필터링
- Today
- Total
ComputerVision Jack
[MFC프로그래밍 - Chapter1] 본문
들어가기 앞서 Chapter1에선 C++프로그래밍에 대한 복습이 이루어진다.
MFC에서 제공 하는 기본 클래스가 C++언어로 작성되고, C++을 이용해 만들어야 하기 때문이다.
클래스(Class)
C언어로 개발 하는 경우 문제점
C언어 구조체로 개발하는 경우 구조체 변수의 모든 필드 공간도 사용가능하기 때문에
오류를 감지 못하는 경우가 종종 발생하곤한다.
따라서 C++의 클래스를 사용한다.
클래스는 변수뿐 아니라 함수도 멤버로 끌어오기 때문이다.
또한 엑세스 지정자를 변수와 함수에 적용이 가능하다.
- public : 클래스 내의 함수 뿐만 아니라 밖의 함수도 가능하다.
- private : 클래스 내에 존재하는 함수만 사용 가능하다.
- protected : 클래스 내에 존재하는 함수만 사용가능하다.
클래스는 서로 연관이 있는 멤버 변수와 멤버 함수를 모아서 하나의 의미 있는 자료구조를 정의할 수 있고,
또한 외부로부터 정보를 보호할 수 있다.
클래스 내의 멤버 함수는 클래스 내에서 구현될 수 있고 클래스 밖에서 구현될 수도 있다.
생성자
클래스 이름과 같은 클래스 내부 함수
클래스 객체가 만들어 질 때 자동으로 호출된다. 클래스 내의 멤버 변수를 초기화 하는 목적으로 사용된다.
파생클래스, 가상함수, 포인터
파생 클래스
C언어 구조체형일 경우, 새로운 추가적인 기능을 구현하려면 새로운 구조체를 추가해야한다.
하지만 C++은 상속을 고려하여 파생클래스를 만들어낸다.
파생 클래스를 이용하면 기존 데이터형에서 확장된 데이터형을 선언할 수 있다.
가상 함수
상속받는 클래스 내에서 상위 클래스와 동일한 클래스가 있을 경우, 새로운 이름으로 명명해야 하는 경우가 발생한다.
따라서 기능은 같은데 이름이 다른 함수가 존재할 수 있다.
이러한 불편함을 해결해 주기위해 가상함수가 존재한다.
virtual void function(int);
포인터
파생 클래스를 정의했을 때 얻을 수 있는 이점은 기반 클래스에 대한 포인터 변수로 파생 클래스 변수도 지칭할 수 있다.
내부에 동일한 이름으로 정의된 함수를 실행할 때, 함수 실행에 대한 결정은
컴파일 시간에 할 수 없고 실행 시간에만 가능하다.
C++에선 메모리를 할당 받기 위해 new연산자를 이용한다.
함수 오버로드, 디폴트 매개변수, 연산자 오버로드
함수 오버로드
같은 기능을 갖는데 매개 변수가 다른 경우, 동일 이름을 적용하고 매개변수만 다른 함수를 만들어 낼 수 있다.
또한 함수 호출 시, 매개변수를 토대로 그에 상응하는 함수가 불러온다.
void function(int num1);
void function(int num1, int num2); 둘은 이름과 기능이 같지만 다른 함수이다.
디폴트 매개변수
매개 변수가 많은 경우 함수 호출에 있어 오류가 발생할 수 있다.
디폴트값을 지정하여 모든 매개변수 의미와 상관없이 함수를 호출할 수 있는 편리성이 존재한다.
연산자 오버로드
연산자 오버로드는 하나의 연산자를 여러가지 다른 용도로 활용하난 것
C++에선 연산자 재정의 기능을 제공한다.
'Image Processing > MFC Programming' 카테고리의 다른 글
[MFC프로그래밍 - Chapter6] (0) | 2020.02.25 |
---|---|
[MFC프로그래밍 - Chapter5] (0) | 2020.02.24 |
[MFC프로그래밍 -Chapter4] (0) | 2020.02.21 |
[MFC프로그래밍 - Chapter3] (1) | 2020.02.18 |
[MFC프로그래밍 - Chapter2] (0) | 2020.02.12 |