본문 바로가기

전체 글51

목차 번역 목차입니다. 영문 원서 하이퍼링크 및에 번역 링크 추가 할 예정입니다. 번역기는 거의 사용하지 않기 때문에 번역이 정확하지 않을 수 있습니다. 이상한 번역은 댓글로 알려주시면 감사하겠습니다. 그리고 초보자분들이 보실 때 난해한 부분을 추가설명 하는 곳이나, 번역이 조금 이상한 부분은 각주를 통해 설명해놨으니 참고하시길 바랍니다. 번역된 항목은 옆에 "번역됨" 으로 표시되고 번역된 내용으로 링크됩니다. Bjarne Stroustrup's C++ Style and Technique FAQ 이 질문들은 사람들이 저에게 자주 물어보는 C++ 스타일과 테크닉에 관한 질문들입니다. 만약 여러분께서 답변에 대한 더 나은 질문이나 의견이 있으시다면, 자유롭게 저에게 이메일을 보내주십시오. 간절히 부탁드리는 것은 .. 2017. 8. 9.
파라미터에서 Pointer, Reference template void bar(T * pTy){ pTy = nullptr; } template void gildong(T & rTy){ rTy = nullptr; } C에는 pass-by-reference가 없다. 단지 pointer를 이용하여 주소를 복사하고 함수에서는 복사된 주소값을 이용하여 pass-by-reference처럼 보이게 동작하는 것이다. 뭐 개념적으로 본다면 위의 동작을 pass-by-reference라고 할 수 있을 것이다. 이것은 의견이 분분하니 넘어가도록 하고 결론적으로 위의 bar 함수는 지역변수 pTy에 nullptr을 대입할 뿐이다. 그리고 기대하던 결과는 나오지 않을 것이다. 문법은 코드를 읽기 쉽게 해준다. c++의 references도 그러한 역활을 하고 있다. 포인터.. 2017. 6. 22.
다차원 배열 어저께 이차원 배열에 대해서 다른 사람에게 설명을 못하겠다고 하여서 대신 설명하게 되었다. 그 친구가 설명한 방식은 다음과 같았다. "이차원 배열이란 말 그대로 이차원적인 배열이고 int a[3][5]는 3x5랑 같다. 그러니까 이러한 모양이다." □□□□□ □□□□□ □□□□□사실 이런식으로 설명하면 int a[3][3][5]는 □□□□□ ■■■■■□ □□□□□■□ □□□□□■ □□□□□ 이런식으로 설명이 가능할 것이다. 하지만 메모리에는 다음과 같이 올라가지 않는다. 1)int a[3][5]{ {1, 2, 3, 4, 5} , {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15} }; int *p = (int *)a; for (int i = 0; i 2017. 6. 20.
클래스 내부 프로시저 음... 일단은 윈도우 관련해서 따로 클래스로 관리할 필요가 있었는데, 다들 알겠지만 this 포인터 때문에 그렇게 간단하게 넣을 수 없다. 나는 윈도우 만들때 여분 메모리를 할당받아서 거기에 주소값을 넣어두고 static 프로시저에서 그 주소값을 꺼내와서 그 오브젝트의 프로시저를 호출하는 방식으로 해결하였다. 일단 Game 클래스 내부에 static 프로시저인 HandleWndProc과 내부에서 사용할 WndProc이 있다. 1) WNDCLASSEX cbWndExtra에 포인터 사이즈를 대입하였다. 프로시저는 하던대로 static 프로시저를 대입하여주었다.WNDCLASSEX wndClass;ZeroMemory(&wndClass, sizeof(WNDCLASSEX));wndClass.lpfnWndProc .. 2017. 5. 25.