일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- map
- set
- directx
- Arduino
- 아두이노 컴파일러
- html
- 라인트레이서
- list
- 시스템프로그래밍
- 운영체제
- LineTracer
- stl
- Deque
- C언어
- 통계학
- WinAPI
- Array
- vector
- priority_queue
- 컴퓨터 그래픽스
- c++
- Algorithm
- 수광 소자
- 아두이노 소스
- 아두이노
- queue
- arduino compiler
- Stack
- Visual Micro
- 자료구조
- Today
- Total
목록Programming (135)
Kim's Programming
연산자 함수 기본형의 연산자 연산자를 오버로딩할 수 있다는 것은 C++의 언어의 큰 특징이며 클래스가 타입임을 보여주는 단적인 예라고 할 수 있습니다. 조금 어렵기는 하지만 문법이 체계적이어서 이해하고 나면 언어의 질서를 느낄 수 있으며 오히려 재밌기도 합니다. C/C++ 언어가 제공하는 기본형의 연산문을 한번 상펴보겠습니다. 대표적으로 덧셈 연산문을 보면 다음과 같은 구문이 가능합니다.12345int i1 = 1 , i2 = 2;double d1 = 3.3, d2 = 4.4 ; int i = i1 + i2;//정수 덧셈double d = d1 + d2;//실수 덧셈cs하나는 정수끼리 더해 정수형 변수에 대입하고 하나는 실수끼리 더해 실수형 변수에 대입하는데 둘다 잘 동작합니다. 연산 결과 i는 3이 되..
상수멤버 상수멤버 상수 멤버는 한 번 값이 정해지면 변경될 수 없는 멤버입니다. 클래스 전체에서 참조하는 중요한 산수가 있다면 이를 상수 멤버로 정의하여 클래스에 포함시킬 수 있습니다. 예를 들어 수학 계산을 하는 클래스에서 원주율을 자주 사용한다면 다음과 같이 상수 멤버를 정의합니다.1234567891011121314151617181920#includeusing namespace std;class Mathcalc{private: const double pie; public: Mathcalc(double apie) :pie(apie){} ~Mathcalc(){} void DoCalculate(double r) { printf("반지름 %.2f인 원의 둘래 = %.2f\n", r, r * 2 * pie);..
정적 멤버 변수 정적 멤버 변수는 클래스의 바깥에 선언되어 있지만 클래스에 속하며 객체별로 할당되지 않고 모든 객체가 공유하는 멤버입니다. 개별 객체와는 직접적인 상관이 없고 객체 전체를 대표하는 클래스와 관련된 정보를 저장하는 좀 특수한 멤버입니다. 정의가 좀 복잡해 보이는데 이런 멤버 변수가 왜 필요한지 소스를 보면서 알아보겠습니다. 다음 소스는 count라는 이름의 클래스를 선언하여 사용하여 사용하는데 main에서 count형 객체가 몇 개나 생성되었는지 그 개수를 관리하고자 합니다. 12345678910111213141516171819202122232425262728#includeusing namespace std; int num = 0;class Count{private: int Value;pu..
정보 은폐 정보은폐란 사용자에게 클래스의 사용법만 알려주고 그 내부 구조는 알려주지 않는 것입니다. 실제 클래스 JpegImage클래스는 Jpeg 이미지 파일을 관리하는 클래스이며 이미즈를 관리하고 출력할 수 있는 기능들이 캡슐화되어 있습니다. 우선 JpegImage 클래스를 보겠습니다.123456789101112131415class JpegImage{private: BYTE *RawData; JPEGHEADER Header; void Decomp(); void Encomp(); public: Jpeg(); ~Jpeg(); BOOL Load(char *FileName); BOOL Save(char *FileName); void Draw(int x, int y);};cs손실 압출을 사용하는 Jpeg 파일의..
구구단을 세로로 포인터, 배열, 구조체, 클래스를 이용하여 출력하는데 조금더 객체지향적으로 작성한 소스입니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133#define _CRT_SECURE_NO_WARNINGS#include#inclu..
파일 정보의 저장 파일은 디스크에 정보가 저장되는 단위이며 고유의 이름을 가집니다. 파일에는 프로그램이 작성한 정보가 저장이 되는데 워드 프로세서는 문서 파일을 만들고 그래픽 프로그램은 그림을 만드며 컴파일러는 소스파일을 만듭니다. 프로그램이 실행 중에 파일을 엑세스하는 경우가 많은데 이번에는 디스크에 있는 파일을 읽거나 쓰고 관리하는 방법을 알아보겠습니다. 프로그램은 실행에 필요한 코드는 가지지만 모든 데이터를 가지지는 않습니다. 실행 파일의 크기에는 제약이 있기 떄문에 모든 정보를 다 가질 수 없으며 그래서 큰 정보는 외부의 파일에 두고 실행중에 읽어서 사용하는 방법을 씁니다. 또한 프로그램이 작업결과를 영구적으로 저장하기 위해서도 파일을 사용합니다. 편집하던 문서나 작성중인 프로그램 소스 등도 파일..
이번 소스는 C의 구조체 , 배열, 포인터 그리고 C++의 클래스를 사용하여 구구단을 출력하는 예제입니다. 참고하실분은 참고하셔도 좋습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129#define _CRT_SECURE_NO_WARNINGS#include#..
가변 인수 함수의 활용 가변 인수 함수는 한 번 호출로 여러 개의 정보를 다양한 방법으로 다룰 수 있다는 면에서 편리합니다. 특히 printf 함수는 다양한 타입의 변수들을 한꺼번에 출력할 수 있어 변수값을 확인해 볼때 아주 유용합니다. 이런 함수를 직접 만드려면 독자적으로 서식을 정의하고 서식 문자열과 대응되는 가변 인수를 직접 읽는 복잡한 루틴을 만들어야 하는데 다행히 이런 일을 대신해 주는 함수들을 준비되어 있습니다. 대표적으로 다음 두 함수만 보겠습니다.12int vprintf(const char * _Format, va_list argptr);int vsprintf(char *buffer, const char *format, va_list argptr); cs이 외에 vscanf, vssanf등..