본문 바로가기

Study178

비스타 커널 디버깅을 위한 virtualpc setting NT까지는 boot.ini파일에다 디버그 포트랑 pipe만 적어주면 디버깅 셋팅이 끝났는데...비스타는 좀틀려서.. 버츄얼 pc에 아래와 같이 셋팅 해주면 끝!~~ 콘솔창을 관리자 권한으로 실행하지 않으면 위에 꼴 난다~~ 자 관리자 권한으로 바꾸고 하니 잘된다....ㅋㅋ 저렇게 하고 windbg를 커널디버깅으로 놓고 버쥬얼피씨에서 디버그 모드로 부팅하여 커널디버깅 고고싱~ 2011. 9. 28.
Class 멤버의 접근 제한자 클래스 멤버의 접근 제어에 대해 알아보자 우선 멤버의 내부 접근과 외부 접근의 의미를 간략한 코드를 통해 보자면 아래와 같다. class Test { public: //접근 제어 키워드 int a; void plus() { a++; // 클래스 내부에서 멤버 변수의 값에 접근 } }; int main(void) { Test h; h.a =10; //클래스 외부에서 클래스를 선언하여 a값을 변경, 즉 외부 접근 h.plus(); // 외부 접근 return 0; } 위에서 클래스 내에서 값을 증거시키는 부분을 내부 접근이라고 하고 그 이외에는 모부 외부 접근에 해당된다. 그럼 public, private, protected에 대해서 알아 보도록 하장... 접근을 제어하는 영역의 범위를 기주으로 위 세 접근.. 2011. 9. 28.
Call - by - Reference.... 자...이번에는 Call by Reference를 포인터가 아닌 &연산자를 이용해서 하는 방법을 보자구..저번에 알아본 &연산자에 대한것을 알고 있다고 가정하고.. c에서는 인자로 들어온 매개변수 값을 포인터로 넘겨서 직접 인자로 넣어준 메모리 접근하여 그 값을 변경했었는데 c++에서는 &연산자를 이용해서 좀 안전하게 인자로 들어온 값을 변경 할 수가있다. 예를 들어 c에서는 아래와 같이 포인터를 이용해 직접 메모리에 접근하여 그 값을 변경하였었다. void Test(int * a, int *b) { int t; t= *a; *a = *b; *b = t; } int main() { int aa=10, bb=20; Test(&aa, &bb); //인자로 들어간 aa와 bb값이 변경된다. } 하지만 c++에.. 2011. 9. 28.
namespace 에 대해... 함수이름이 같을 경우에 대한 문제 해결 방법이라고 볼수 있다.. 함수이름이 같더라도 다음과 같이 선언하여 쓰면 그러한 문제를 해결할수 있다. 이런한 문제는 여러명이 한 프로젝트를 수행시에 함수명이 겹처서 발생할 수 있는 문제를 예방 할수 있는거 같다... 우선 보자면 namespace T_1 { void TestFunction(void) { ..... } } namespace T_2 { void TestFunction(void) { ....... } } 같은 함수명이 사용되었지만.. 저런식으로 선언하고 쓴다면 문제 될거이 없다..다만 사용시에는 아래와 같이 어떤놈의 함수인지를 알려주고 사용하면 된다. int main(void) { T_1::TestFunction(); //요런식으로 (:: 요건 범위지정 .. 2011. 9. 28.