쥬신게임아카데미/궁금했던것
-
정리쥬신게임아카데미/궁금했던것 2016. 1. 16. 01:20
STL안에 실체냐 포인터냐 이건 얕은복사를 생각하면된다 만약 내부에 멤버가 포인터인게 있다면 (내부에서 new하면) 이건 100프로 포인터를 넣어라 아니라면 실체를 넣는게 속도나 처리면서 좋음(소멸 delete를 따로 할 필요가 없음) 나눗셈은 겁나 느리다 쉬프트써라 멤버변수로 포인터있다면 이니셜라이저에 생성자에서 0넣어줘라 그래야지 초기화되지 않은 포인터 접근시 에러발생 백터사용시 erase pop_front사용시 가리키는 포인터 주의! 반드시 헤더에서 포함이 발생하는것이 상속의 단점이다(상속받기위해선 부모헤더포함한것) 시컨스전이에서 부모는 자식의 시컨스를 타이틀이라고하면 타이틀 new하고 게임이면 게임을 new 하는 일대일 대응방식임..부모에서 전부 switch로 하는게 이님 일일이..확인생성 등등...
-
싱글싱글턴쥬신게임아카데미/궁금했던것 2016. 1. 6. 17:40
http://chfhrqnfrhc.tistory.com/entry/%EC%A0%84%EC%97%AD%EB%B3%80%EC%88%98%EC%99%80-%EC%A0%84%EC%A0%81%EB%B3%80%EC%88%98 https://kldp.org/node/121931 말그댈 싱글은..하나 턴은 인스턴스가 만들어지는것.. 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어진다. - 어디서든지 그 인스턴스에 접근할 수 있도록 한다. - 클래스에서 자신의 단 하나 뿐인 인스턴스를 관리하도록 만들면 된다. 어떠한 객체가 꼭 하나만 있어야 되는 경우 싱글톤으로 정의한 클래스 템플릿을 상속 받도록 한다. 도대체 왜 쓸까? 흔히 관리하는 프로그램에서 많이 쓰인다고 한다. 어느 블로그에서 "서점에서 관리자가 책들을 관..
-
메모리값 관련.의미..쥬신게임아카데미/궁금했던것 2015. 12. 29. 17:46
메모리값 의미 0xCDCDCDCD 힙에 할당된 메모리다.그러나 초기화 되지 않았다. 0xDDDDDDDD 힙에서 Free된 메모리이다. 0xFDFDFDFD "NoMansLand?"(아무도 여기에 있어서는 안된다. 즉 자동적으로 할당된 힙 메모리 바운더리에 놓여지는 값이다. 결고 overwrite되선 안되고, 만약 이 값이 변경되면 할당된 영역이상 쓰여진 것이다. 이럴 경우 VC에서 경고를 내준다. 0xCCCCCCCC 스택에 할당된 메모리이다. 그러나 초기화 되지 않았다. http://www.hackerschool.org/Sub_Html/HS_University/BOF/essential/PDF_Files/15.pdf
-
메모리 구조관련(미해결..)쥬신게임아카데미/궁금했던것 2015. 12. 29. 16:46
보통 Heap의 경우는 하위 주소에서 상위 주소쪽으로 변수가 채워지며, Stack의 경우는 상위 주소에서 하위 주소쪽으로 변수가 채워진다. 이는 프로그램 도중 Stack이 얼마나 필요할지 알 수 없으므로 Stack은 거꾸로 채워나간다 상위 메모리 주소 0xffff 하위 메모리 주소 0x0000 stack의 지역변수는 사용하고 소멸하므로 데이터 용량의 불확실성을 가지므로 밑에서부터 채워 올리고 heap은 위에서 부터 채워 내려진다. 용량의 불확실성은 컴파일러가 알아서 메모리영역을 선택(랜덤적) -stack영역에서의 주소값은 시작주소는 밑에서부터(먼저선언된 순서) 그다음 주소는 순서대로 정해진다. HEAP overflow-heap이 위에서부터 주소값을 채워져 내려오다가 stack영역을 침범하는 경우. STA..
-
소수점을 정수로 캐스팅 할때쥬신게임아카데미/궁금했던것 2015. 11. 26. 18:09
만약에 0.99를 정수로 캐스팅한다면 0이 되버린다. .99를 버리게 된다. 거의 1에 근접하니까..신경이 쓰인다 그래서 반올림을 하는데..0.6중 .6이 사라지는것보단 1이 되서 0.4를 더 얻는게 정확도면에선 더 낫지 않나..int Round(double _a) { //양수라면 0.5를 더하고나서 int로 캐스팅하고 소수점 아래는 버린다.. //음수라면 0.5을 빼야만한다. 그 이유는 int로 하는 캐스트는 0에 근접하는 방향으로 자르므로 //-4.4는 -5가 아니라 -4가 된다. -0.6은 0.5를 빼서 -1.1로 만들고 나서 잘라내면 된다. _a+=(_a > 0) ? 0.5 :-0.5; return static_cast(a); }
-
전방선언과 헤더파일 포함할때..쥬신게임아카데미/궁금했던것 2015. 11. 24. 01:49
중복된 헤더파일 포함에 대해선 아래 글부터 읽고 http://ekessy.tistory.com/20 전방선언 class A; 이런식으로 class B { public: A* ptr } B클래스 앞에 정의를 한다면 헤더파일을 포함하지 않고 포인터로 변수를 선언할 수 있는데.. 이게 중복된 인클루드를 피할 수가 있다.(A의 실제 헤더는 B.cpp에 포함해야한다) 만약에 #include"b.h" class A #include"a.h" class B가 있다면 보통은 중복을 안하려고 #pragma once를 붙이는데..(#ifndef ~ #endif나..) 그럼 #pragma once #include"b.h" class A {...} #pragma once #include"a.h" class B {..} 이렇게 ..