C++/summary 70

배경음악을 넣어보자. PlaySound()

일단 준비 단계로 헤더파일을 인클루드 한다. #include #pragma comment(lib,"winmm.lib") 그리고 프로젝트 내에 .wav 파일을 넣어주고 PlaySound(TEXT("bgm.wav"), NULL,SND_FILENAME | SND_ASYNC | SND_LOOP | SND_NODEFAULT); 이런 식으로 옵션을 넣어준다. 중강 중간에느 | (OR) 을 적어준다. 여러가지 옵션 내용으로는 플래그명 의미 SND_APPLICATION 매개변수 pszSound는 응용프로그램에 등록된 변수명이다. 응용프로그램에 정의된 소리 변수명을 기입하기위해 당신은 이 플래그를 SND_ALIAS 또는 SND_ALIAS_ID와 함께 쓸수 있다. SND_ALIAS 매개변수 pszSound는 레지스토리나 ..

C++/summary 2010.05.20

콘솔창의 색을 바꾸자.

#include #define col GetStdHandle(STD_OUTPUT_HANDLE) // 콘솔창의 핸들정보 받기 #define RED SetConsoleTextAttribute( col,0x000c ); //빨간색 #define BLUE SetConsoleTextAttribute( col,0x0001 | 0x0008); //파란색 #define HIGH SetConsoleTextAttribute( col,0x00a); // 연두 #define WHITE SetConsoleTextAttribute( col,0x000f); // 흰색 #define SKY SetConsoleTextAttribute( col, 0x000b); //하늘색 #define YEL SetConsoleTextAttribute..

C++/summary 2010.05.18

객체지향 언어.

객체란 ? 1. 객체(object)는 상태와 동작을 가지고 있다. 2. 객체의 상태(state)는 객체의 특징값(속성)이다. 3. 객체의 동작(behavior) 또는 행동은 객체가 취할 수 있는 동작 상태는 변수로 표현되고, 색깔 -> color 동작은 함수로 표현된다 속도증가 - > speedup(); 클래스는 : 객체를 만드는 설계도. 클래스로부터 만들어지는 각각의 객체를 특별히 그 클래스의 인스턴스(instance)라고도 한다.

C++/summary 2010.05.18

동적할당 메모리 && 메모리의 해제

정적할당 메모리에서는 int buffer[80]; 이것을 다시 100개로 늘릴때는 불가능하다. 이럴때 동적할당 메모리가 가능하다. 예전 C에서는 // malloc 과 free라는 함수를 사용하였다. int *p = (int *) malloc(sizeof(int) *10 ) // 이것은 힙영역에 저장 // void 주소값이 반환된다. 그래서 타입변환이 필요하다. p[0] = 10; // 이렇게 사용이 가능했다. 하지만 이것은 할당후 사라지지 않는다. 그래서 free(p); 하지만 C++에서는 // new 와 delete 라는 연산자를 사용하였다. int *p = new int[10]; p[0] = 100; // 이런식으로 사용가능 delete[] p; 이것의 차이는 함수는 선언, 기본적 제공하지 않음 하지..

C++/summary 2010.05.04

레퍼런스

포인터 type * p; 레퍼런스 type &r = 기억공간이름(변수명) // 기억공간을 공유 // 반드시 선언과 동시에 초기화!!!! 사용시 주의점 선언과 동시에 초기화 int n=20, m=20; int &ref = n; ref = m // 변경이 불가능하다, 상수화 된다. int &ref; // 초기화가 되지 않았다. 상수로 초기화하면 컴파일오류 int &ref = 10; // 기억공간(변수명) 레퍼런스의 장점 이전에는 포인터를 이용하여 스왑을 하였지만.... void swap(int &rx, int &ry); int main() { int a = 100, b = 200; cout 형식인자는 레퍼런스 변수 실인자와 형식인자는 기억공간을 공유한다. -> 많은 리턴값을 받아오는데 2,3번이 유용하다. ..

C++/summary 2010.05.04

문자열의 표현 && 유용한 문자열 함수들.

문자열이란 ? : 문자열 코드값들 + NULL 값 문자열 상수 = > 시작주소값 반환. "Hello(NULL) "; 널까지 포함된다. 문자열 1. 배열을 이용 : 데이터를 복사 함으로써 자신의 공간을 할당받기때문에 변경 가능하다. char s[] = "hello"; *s = 'T'; 2. 포인터변수를 이용 : 원본을 참조만 하기 때문에.. "Hello" 는 문자열 상수이기 때문에 변경 불가능 char *p = "hello"; *p = 't';// 변경이 불가능하다. // 주소값을 참조만 하기 때문에. char *q= s; *q = 't'; // 이건 변경가능하다. 문자열 집합을 "hello" , "android", "gandus" , "bye" 이걸 저장하려면 2차원 배열을 이용 char s[7][10]..

C++/summary 2010.04.29

Const 포인터를 이용해서 함수를 효율적으로 만들기.

const int * p; // 읽기전용 포인터 p = & a; // 읽기(참조)는 가능하지만, 값 변경을 할 수 없다. 이것은 중요하다. void sum (int a , const int * b, int * c) // b는 그저 전달만 하고,수정이 되지 않을때는 명확하게 구분지을 수 있다. int * const p = &a; // 상수 포인트 p = &b; // 오류가 난다. 주소값이 상수화 되어서. ________________________________________________ void swap( *a, &b) swap(&a, &b);

C++/summary 2010.04.27