본문 바로가기

프로그래밍162

항목3. 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다. 제목이 뭐랄까 복잡하지만, 내용을 보니 그정도 까진 아닌거 같다. 다형성이라는 정의를 좀 쉽게 설명하면, "AAA 클래스를 상속받은 BBB 클래스가 있다. 그리고 AAA 클래스의 객체가 BBB 클래스를 접근하는 것이 가능하다. " 라고 표현 할 수 있겠는데... 아.. 써놓고 보니 쉽지 않은거 같기도 하고--;; 자세한 내용은 다형성에 대해서 "객체 포인터"라는 부분에서 정리를 예전에 해 두었으니 해깔리면 그걸 먼저 보는것이 나을 것 같다. 예제는 2가지정도 존재 하지만, 첫번째 예제만 봐도. "아!... 위험하네." 싶다. // 기본 클래스 AAA class AAA { public: int a; public: AAA() { a = 0; } // AAA 클래스의 연산자 오버로딩 friend ostream.. 2011. 4. 25.
항목2. 가능한 C++ 스타일의 캐스트를 즐겨 쓰자. 먼저 static_cast, const_cast 부터 알아 보자. #include using namespace std; void main() { int scast_number1 = 3; int scast_number2 = 2; // static_cast // 가장 많이 사용하는 cast라고 보면 되겠다. // 가장 기본적인 형변환 // 기존의 단순한 (float)number1 대신 float fnumber = static_cast(scast_number1) / scast_number2; // 다음 처럼 변형되었다고 보면 되겠다. cout 2011. 4. 22.
항목1. 포인터와 참조자를 구분하자. 포인터와 참조자의 기본 개념부터 파악해 보자. 여러 좋은 예, 상황에 비유 할 수도 있지만 가장 큰 차이점과, 비슷한 점을 생각해 보았을 때 주소를 통해 접근, 같은 이름공간을 사용한 접근. 이라고 생각한다. 포인터든, 참조자든 사용하는 이유는 말 그대로 다른곳에 저장되어 있는 정보를 접근하여, 변경. 사용하기 위해서라고 생각하는데, 접근 하는 방식이 다르다고 보면 될 것 같다. 1. 참조자는 Null 의 개념이 존재 하지 않는다. 즉, 생성과 동시에 이미 값이 존재하여야 한다는 것이다. string& str; // 말도 안되는 사용방법,어차피 되지도 않는다. string s("test"); string& rstr = s; // 생성과 동시에 값이 존재해야 한다는 것을 기억하자.​ 2. 상황에 따른 적절.. 2011. 4. 22.
SVN - 간단한 설치법 *어디까지나 제가 사용한 기준으로써, 저를 위한 포스팅입니다. 현재 SVN은 Tortoise SVN을 사용하고, 서버는 네이버 개발자 센터에 등록하여 사용합니다. 1. SVN 설치( Tortoise SVN ) 2. 네이버 개발자 센터에 등록 3. 커밋, 업데이트 사용법 1. SVN 설치 http://tortoisesvn.net/ [download] -> [TortoiseSVN 32-Bit (32비트) or TortoiseSVN 64-Bit(64비트)] 에서 SVN을 다운 받는다. 영문으로 쓰기에는 영어 실력이 많이 부족한 관계로, 하단에 보이는 한글패치를 받는다. 마찬가지로 32bit or 64bit 중 택해서 받는다. 다운 받은 SVN 설치 설치에서 특별한 부분은 없기 때문에, 그냥 Next, 설치 폴.. 2010. 12. 29.
DirectX - 알파 블랜딩, 알파 테스팅, Z버퍼 알파 블랜딩이랑 버택스(or인덱스)로 만든 하나의 이상의 페이스(플랜등..)에 입힌 텍스쳐에 특정 부분을 투명하게 하기 위한 기능이다. 하지만 알파 블랜딩을 사용할 때 주의점이 존재 하는데, 알파블랜딩을 사용할 때 주는 옵션중에, D3DRS_SRCBLEND, D3DRS_DESTBLEND가 있다. 각각 디폴트 값은, D3DBLEND_ONE, D3DBLEND_ZERO 인데, 사용할 예제에서는 m_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); m_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);​ 처럼 설정해 주었다. (추가적인 각 추가적인 각 열거체에 대한 설명은 DX도움말.. 2010. 6. 29.
API-GetAsyncKeyState( 키보드 입력함수 ) DX에서 키보드 입력을 받게 될때, API함수를 사용해 보았는데, 자꾸 까먹게 되어 따로 포스팅을 한다. 키보드 입력을 처리 하는 함수로는 GetAsyncKeyState 함수와 GetKeyState가 존재 하는데 GetAsyncKeyState에 대해서 간단하게 필요한 부분만 빠르게 포스팅하도록 하자. 주로 GetAsyncKeyState를 사용할 때 함수만 딸랑 쓰는게 아니라 추가적인 연산을 해주게 되는데, if( GetAsyncKeyState( VK_DOWN ) & 0x0001 )// 이렇게 쓰거나 if( GetAsyncKeyState( VK_DOWN ) & 0x8000 )// 이렇게 쓴다.​ GetAsyncKeyState는 키가 눌렸을 때 GetAsyncKeyState의 0x8000 bit가 1이된다... 2010. 6. 28.