본문 바로가기

C++/MFC 핵심노트9

[C++/MFC 핵심노트] Function(함수) - call by value & call by reference 2021-04-15 update log: 기존에 사용한 예제가 C언어 스타일이라서, C++ 스타일의 예제 코드를 추가하였습니다. 함수에 Argument(아규먼트)를 전달하는 방법에는 2가지 가 있습니다. 값을 전달하는 방법과 참조를 전달하는 방법이 있는데요. 많은 곳에서 call by value, call by reference라는 이름으로 한번쯤 보신적이 있을 겁니다. call by value와 call by reference 차이점 call by value라는건 아규먼트의 값을 그대로 함수의 파라미터의 복사를해서 사용하는 방법이고, call by referece는 아규먼트의 참조만 복사를 해서 함수의 파라미터로 사용하는 것을 말합니다. 저의 이해를 바탕으로 그림을 그려봤습니다. call by valu.. 2019. 11. 6.
[C++/MFC 핵심노트] Function(함수) 함수는 명령어들의 그룹이라고 할 수 있습니다. 여러가지 명령어들을 하나로 묶어서 함수로 만들어 놓으면 이 덩어리를 호출하는것 만으로 내부의 명령어들을 사용할 수 있도록 만들어 둔 개념입니다. 함수의 구문 함수라는 건 이런 구조로 되어 있습니다. 반환형 함수명(파라미터 목록) { 명령어 명령어 . . } 반환형: 함수가 반환하는 데이터의 타입 함수명: 함수의 이름, 함수를 호출할 때 사용됨 파라미터: 함수를 호출할 때 아규먼트를 함수로 전달을 하게되는데 이 값은 파라미터로 참조가 됨. 파라미터 리스트는 타입 순서 그리고 개수를 나타내여야 한다. 파라미터는 생략가능 명령어: 함수가 실제로 수행해야하는 일들을 중괄호({, }) 안에 작성 "함수명"으로 함수를 호출하면 함수 내부의 명령어들이 차례대로 수행되기 .. 2019. 11. 6.
[C++/MFC 핵심노트] Class (클래스) 정의,선언 - PART 1 2018-12-12 update log: 더미프로젝트 변경으로 인한 실습코드 수정 클래스는 C++을 객체 지향 언어라고 부르게하는 가장 중요한 부분이라고 합니다. 클래스는 사용자가 내부의 데이터 멤버와 함수를 정의해서 만드는 데이터 타입입니다. 그리고 이렇게 만들어진 클래스는 인스턴스를 생성해서 사용하게 된다고 합니다. 클래스의 개념만으로는 저도 뭔소린가 싶은데, 예제를 보면서 차근차근 이해해 보도록 하겠습니다. Class 정의 클래스 사용에 앞서 정의가 필요합니다. 클래스가 어떤 구조를 가지고 있으며 어떤 타입의 객체를 가지고 어떤 동작을 할 것인지 개략적인 컨셉을 설명해주는 과정입니다. 정의를 하는 방법은 "class" 라는 키워드와 함께 사용할 이름과 중괄호로 둘러싼 본문을 차례대로 써주면 됩니다... 2018. 11. 19.
[C++/MFC 핵심노트] C++언어의 기본구문 - 분기, 반복 C++ 언어의 기본 구문에 대해서 정리해 봅시다. 분기문 if / else 문 "if"문은가장 기본적인 분기문으로 조건에 따른 분기를 만드는 대표적인 구문입니다. "else"키워드와 함께 사용하면 다양한 분기를 만들수 있습니다. "else"는 필요에 따라서 생략 할 수도 있습니다. if (height > 180) { result = _T("tall"); } else if (height = 179) { result = _T("too close"); } else { result = _T("short"); } switch 문 "switch"문은 연산결과에 따라 서로다른 분기를 만들어 주어야 할 때 간단히 사용할 수 있는 분기문입니다. 특징은 "break"명령으로 끝어주지 않으면 그 아래 케이스가 이어서 동작합.. 2018. 11. 13.
[C++/MFC 핵심노트] 배열과 포인터 그리고 문자열 2018-12-20 update log: 실습용 더미프로그램 수정으로 인한 실습코드 변경 2018-11-21 update log: 오류사항 수정 배열, 포인터, 문자열은 서로 개념적으로 긴밀한 관계가 있습니다. 개념과 연관성을 자연스럽게 이해하도록 하기위해 이 3가지를 하나의 주제로 묶어서 설명하려 합니다. 핵심은 포인터라고 할 수 있을 것 같습니다. 포인터란 개념은 C/C++에서 매우 중요하다고들 합니다. 그리고 언어를 공부해 본적 있는 분들은 포인터가 나오기 전까지는 별 거부감 없이 잘 따라가다가 포인터 부터는 이게 뭔소리가 했던 경험들 다들 있으실 겁니다. 저도 아직 포인터란 개념을 완벽히 이해했다고는 말하지 못하지만, 지금 다시 생각해보면 어려운 개념이라서 이해를 못한것이 아니라 책의 설명이 너무.. 2018. 11. 12.
[C++/MFC 핵심노트] 실습용 더미 프로젝트 만들기 2018-12-20 update log: 화면출력관련, 일정한 코드를 사용할 수 있도록 myprint()함수 및 edit control 사용 2018-11-21 update log: 누락사항 수정 프로그래밍을 공부하는데 가장 중요한 것은 실습입니다. 제가 소개해 드리는 MFC 기본강좌에서 실습이 필요한 코드가 있을 때 그 코드를 바로 넣어서 사용하기 위해서 MFC 기반의 더미 프로젝트를 만들어 놓고 실습에 사용하도록 하겠습니다. MFC 기반의 프로그램 만들기라는 목적 지향적 강좌이기 때문에 보통 교재에서 소개하는 콘솔 기반의 프로그램과는 다르게 윈도우 기반의 프로그램에서 출발하려 합니다. 참고해 주세요. 실습용 더미 프로젝트를 만들기 프로젝트의 시작은 언제나 비슷하기 때문에 지난 강좌의 "[C++/MFC.. 2018. 11. 6.
[C++/MFC 핵심노트] 변수형, Data type의 기본 C++에서 사용하는 변수들의 큰~ 분류별로 어떤것들이 있는지와 변수는 어떻게 사용하는 것인지 알아봅시다. 변수들은 모두 사용하기전에 선언을 해주어야 합니다. 앞으로 이 단어는 내가 변수로 사용 하겠어라고 선언을 하면 컴파일러는 그단어가 나올때 마다 변수로 인식하고 변수 그대로의 문자로 인식하는 것이 아니라 변수에 저장된 data를 인식하게 되는 것이죠. 변수의 선언을 위해서는, 변수의 형을 먼저쓰고 그 뒤에 사용하고자 하는 변수이름을 쓰면 됩니다. 이게 무슨말인가 싶은데 지금부터 변수들을 하나씩 알아가면서 사용법도 알아보도록 하죠. 변수에는 그 용도별로 다양한 형태들이 있습니다. 정수를 저장하는 'int', 실수를 저장하는 'float', 문자와 문자열을 저장하는 'char'와 'string' 등이 있습.. 2018. 10. 25.
[C++/MFC 핵심노트] MFC를 이용한 윈도우 프로그램 5분만에 만들기 VS를 설치 했으니 아주 간단하게 프로그램을 하나 만들어 보겠습니다.VS 설치방법은 이전 블로그를 참고해 주세요. (Visual Studio Community 2017 설치 따라하기) VS를 실행합니다. 자 새로운 프로젝트를 만들어 보겠습니다.메뉴에서 파일 >> 새로 만들기 >> 프로젝트 를 눌러줍니다. 단축키는 Ctrl + N 이네요.아래와 같이 팝업이 하나 뜨면 왼쪽 트리 메뉴에서 설치됨 >> Visual C++ >> MFC를 따라갑니다.그러면 오른쪽과같이 만들수 있는 기본 프로젝트가 나타나는데요 그중에서 저희는 MFC 응용 프로그램을 고릅니다.그리고 창 아래쪽에 프로젝트 이름을 정해줍니다. 저는 MyFirstProgram으로 했습니다. 솔루션이름은 프로젝트이름과 같이 자동으로 입력되네요. 솔루션은 .. 2018. 10. 25.
[C++/MFC 핵심노트] Visual Studio Community 2017 설치 따라하기 프로그램, 앱 등 개발에는 통합개발환경(IDE)라고 하는 개발용 프로그램이 필요합니다. 저는 오래동안 많은 이들에게 사랑받고 있는 Visual Studio를 IDE로 활용하고 있습니다. 한때 Visual Studio는 유로 프로그램이라서 이 편리한 개발환경을 누리기 쉽지 않았던 시절이 생각나는데, 암튼 요즘은 MS에서 Visual Studio Community version(이하, VS)을 개인 사용자에게 무료로 사용할 수 있도록 해 주었습니다. 자 설치한번 해보죠 Visual Studio Community 2017 설치하러 가기 Visual Studio 사이트를 들어가보면 다양한 제품들이 있습니다. 나중에 기회가 되면 다른 도구들도 알아보도록 하겠습니다. 첫번째 IDE에 마우스를 가져가면 Dropdow.. 2018. 10. 25.