lpsz - long pointer string zero  =>  0으로 초기화

////////////////////////////////////////////////////////////////////////////////////////

객체안의 static 함수는 객체 생성없이도 사용 가능하다.

class A
{
     static void test()
     {
          printf("hi\n");
     }
}

int main()
{
     A::test();
     return 0;
}


위의 소스는 컴파일 가능하다.

또다른 특징으로는 static 함수안에 쓰는 변수는 전부 static 변수만 사용가능하다. 스택에 들어있는 변수를 사용하면 에러!!!!

2009.7.
좀 수정하자면 그러니까 객체생성과는 상관없이 static은 이미 메모리상에 생성되있는거다. 그렇기때문에 좀더 독립적으로 사용가능하다.
뭐 예를 들자면 객체생성시 카운터가 증가하게해서 객체 생성의 숫자를 알게한다거나..뭐그런거.

////////////////////////////////////////////////////////////////////////////////////////

assert  -  예외처리

assert 안이 참이면 pass되지만 거짓일 경우는 program 종료

////////////////////////////////////////////////////////////////////////////////////////















Posted by huu
,
생성자 안에서 동적할당을 받을 경우 얕은 복사의 문제가 발생하는데

1. 소멸자부분에서

2. 복사 생성자 부분에서

3. 대입연산에서

동적할당의 문제가 생기므로 각각 재정의 해줘야 한다.




* 만약 메인 함수에서 동적할당을 받은 클래스를 생성할 경우에는 소멸자의 경우에 가상 소멸자도 신경써줘야 한다.(virtual)




/////////////////////////////////////////////////////////////////////////////


대입연산의 경우

//    객체 안에서 

MSTR &operator=(const MSTR & jj)
{
if(this != &jj)
{
 delete [] p;
 p = new char [strlen(jj.p)+1];
 strcpy(p,jj.p);
 }
 return *this;
 }
Posted by huu
,