일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- VS ERROR
- 함수
- c#
- Visual Studio
- 리뷰
- tipssoft
- 문법
- 티스토리
- 프로그래밍
- Kotlin
- Desktop
- Tips강좌
- 배열
- c++
- 지식나눔강좌
- 이지스퍼블리싱
- CS
- Windows
- Win32
- 포인터
- 연산자
- Direct2D
- 알고리즘
- c
- Programming
- 김성엽
- Tips프로그래밍강좌
- doit코틀린프로그래밍
- Javascript
- 백준
- Yesterday
- Today
- Total
목록c++ (21)
F.R.I.D.A.Y.
C/C++로 작성한 Win32 프로그램의 exe 파일 아이콘 변경하기 리소스 파일 추가 아이콘 변경을 위해서는 리소스 파일을 추가 해야한다. 프로젝트에서 [새 항목 추가 - 리소스 - 리소스 파일]을 선택해 프로젝트에 추가한다. 리소스 뷰[# Ctrl + Shift + E]에서 리소스를 추가한다. 프로그램의 아이콘을 변경할 것이므로 아이콘을 추가한다. 가져오기를 통해, 원하는 아이콘을 별도로 추가할 수도 있다. 추가가 완료되면 세 번째 사진과 같이 IDI_ICON1 등의 추가된 아이콘이 발생함을 알 수 있다. 이제 솔루션 탐색기[# Ctrl + Alt + L]에서 Resource.rc의 코드 보기[# F7]를 통해 코드 편집을 한다. 코드 편집기를 열면 오른쪽 이미지와 같이 리소스 관련 내용이 소스코드 ..
C++에서 사용하는 레퍼런스 타입 함수로 값 전달하기 C에서 함수로 값을 전달하는 방법에는 크게 두 가지 방법이 있습니다. 값으로 전달(Call by Value) 주소로 전달(Call by Address) 사실, 주소로 전달하는 방식 또한, 결국은 값에 의한 전달과 동일한 개념이지만 일반적으로 값으로 전달했을 때의 단점을 상쇄할 수 있기 때문에 별도의 방식으로 보고 있죠. C++에서는 하나의 타입이 추가됩니다. 레퍼런스 타입 C++에는 레퍼런스 타입이라는 불리는 타입이 추가되었습니다. 아래처럼 사용할 수 있습니다. int a = 5; int& ref = a; ref = 7; // a도 7이 됨 레퍼런스 타입으로 변수를 선언하면, 대입한 변수의 공간을 함께 공유합니다. CallbyAddress와의 차이 레..
VS ERROR E1087 해당 오류는 여러 이유로 발생할 것으로 생각된다. 따라서, 각 파트에 맞추어 작성하겠다. 함수 한정자 const 사용 코드를 작성할 때, 클래스 메서드에서 멤버 필드에 쓰기를 제한하도록 하는 구문이 있다. class test{ private: int a; public: void accessA() const{ a = 5; // error } } 이런 식의 구조인데, 코드를 보게 되면, accessA 함수 뒤에 const로 한정자가 작성되어 있다. 멤버 함수 뒤에 붙는 const가 객체에 접근해 쓰기를 제한하도록 하는 구성이다. 원인 E1087 에러가 나는 방식 중 하나는 const 메서드에서 에서 일반 메서드를 호출할 때 이다. int Test::a() const{ b(1);//..
회전한 사각형을 외접하는 사각형 구하기 회전 사각형 이미지처럼 회전각이 존재하는 사각형은 그 외부에 해당 사각형을 포함하는 사각형을 그릴 수 있습니다. 해당 사각형을 구하는 방법을 알아봅니다. 여기서부터 회전각을 가진 사각형을 포함하는 사각형[# 빨간색으로 되어 있는 사각형]을 외접 사각형이라 명명합니다. 삼각함수 외접 사각형을 구하는 방법은 피타고라스 방정식을 이용하는 것입니다. 빗변 길이의 제곱은 가로 길이의 제곱과 세로 길이의 제곱의 합으로 이루어진다는 방정식을 이용하면 외접 사각형을 구할 수 있습니다. 80도 만큼 회전한 사각형이 있습니다. 그럼 빨간색으로 강조된 삼각형이 형성됩니다. 해당 부분의 가로축과 세로축은 COS와 SIN 삼각함수를 이용하면 구할 수 있습니다. 여기에서 COS에 적용할 각..
템플릿 클래스를 상속하는 템플릿 클래스에서 부모 템플릿 클래스의 멤버 사용하기 템플릿 상속 템플릿 클래스 상속 또한 일반 클래스 상속과 같은 방식으로 합니다. template class Test{ protected: T* list; size_t length; } template class exam : Test{ exam(T* arr, size_t length): length{length}{ list = new T[length]; for(size_t i = 0 ; i < length; ++i) list[i] = arr[i]; } } 다만 일반 클래스 상속과 달리 부모 템플릿에서 상속한 list[# 템플릿으로 구현한 자료형 T를 사용] 멤버를 exam에서 사용하기 위해서는 이런 식으로 사용할 수 없다. 만일..
A 클래스 메서드를 가리키는 A 클래스의 멤버 함수 포인터의 선언과 사용 함수 포인터 함수 포인터는 말 그대로 함수를 가리키는 포인터입니다. 함수 포인터에 대한 자세한 설명은 아래 링크를 참고하세요. 포인터(pointer) part3. 함수 포인터 포인터는 신기하게도 함수까지 가리킬 수 있습니다. 어차피 이름이 있으니 이름으로 사용하면 될 텐데 뭐가 좋으냐는 생각을 할 수 있겠지만 이번에 그 생각이 바뀌실 겁니다. # 포인터에 대한 pang2h.tistory.com 클래스의 메서드도 함수 포인터로 이용을 할 수 있습니다. 그러나 일반적인 함수 포인터 선언으로는 제대로 사용할 수 없습니다. 해당 문제는 클래스 메서드의 특성을 알아야 이해가 가능하기 때문에 해당 부분을 먼저 설명합니다. 클래스 클래스는 객체..
물리엔진 - 벽 충돌 part1. 바닥 구현 이전 시간의 중력 구현에 이어 이번에는 지나갈 수 없는 벽을 구현해봅니다. 벽 물리엔진을 구성하다보니 주로 게임에 빗대는 경우가 많은데, 벽이라 함은 물체가 뚫고 지나갈 수 없는 것을 pang2h.tistory.com 위 시리즈와 연계해 작성합니다. 프로젝트 코드는 다음에서 이어집니다. 좌우 벽 충돌 플래시 게임 등에서 바닥을 형성한 것 외에 추가로 구현한 것이 있습니다. 좌우로 벽을 만났을 때 캐릭터가 이동하지 못하도록 하는 것입니다. 이것 또한 Calculate 메서드에서 처리하면 구현할 수 있습니다. 과 방향만 다르지 동일한 내용이기 때문에 해당 코드를 참고해 역으로 계산하면 수비게 코드를 작성할 수 있습니다. 또한, 좌우 이동은 서로 상반된 명령이기 때..
[C++] 예제 코드의 내용중 이해가 안되는 부분이 있습니다. #include using namespace std; class Parent { public: virtual string Class_Message()... kin.naver.com data()를 어디에 사용하는지 설명해주세요. Test_Function, Test_Function2 함수를 보면 data 함수를 추가로 사용하는 것을 알 수 있습니다. data 함수를 어디에 사용하나요? Code. #include using namespace std; class Parent { public: virtual string Class_Message() { return "Parent"; } }; class Child : public Parent { publ..
최근 비트 연산자에 대한 질문을 들어온지라, 오늘은 비트 연산자에 대해 알아봅니다. 더보기 # 들어가기에 앞서.. 비트 연산자는 프로그래밍에 있어 고급 기술이라 분류할 수 있을 것 같습니다. 따라서 이해도 안 되는데 처음부터 배울 필요는 없습니다. 그래도 배워두면 프로그래밍 능력의 초석을 단단히 다질 수 있을 것이란 말을 드리고 싶습니다. 비트 알아보기 비트 연산자를 알아보기 전에, 우리는 비트에 대해 알아볼 필요가 있습니다. 비트란 정보의 가장 최소의 단위로서 이 비트가 8개 모여 1바이트가 됩니다. 예를 들어 아래 값이 char 타입의 변수에 들어있다고 합시다. ' 15 ' 이 숫자 15의 비트 패턴은 어떻게 될까요? #include int main(void){ unsigned char ch = 15..
며칠 전 동기들이 작성한 코드를 보다가 잘못 작성한 코드가 다수 보이길래 이렇게 왔습니다. sizeof 연산자에 대한 문제였는데요. 오늘은, sizeof에 대한 연산자의 사용을 알아봅니다. ※ 이 포스트는 Visual Studio 2019 Community v16.1.2. 에서 테스트되었습니다. 기능 sizeof는 변수, 혹은 자료형, 상수의 크기를 반환하는 연산자입니다. 다음 코드를 실행하면 이 나옵니다. #include int main(void) { char ch; short wch; int i; long l; long long ll; float f; double dbl; printf("%d ", sizeof(ch)); printf("%d ", sizeof(wch)); printf("%d ", siz..