패배하고 있을 때도 싸우는 사람이 진정한 승자다

'삶의 투쟁과 전쟁 속에서
이기고 있을 때는 싸우기가 쉽다.
성공의 해가 떠오르기 시작할 때는
노예처럼 일하는 것도, 굶주리는 것도, 용기를 내는 것도 쉽다.
그러나 슬픔과 패배를 마주할 수 있는 사람에게는
여기 신이 선택한 사람을 위한 갈채가 주어진다.
천국에서의 승리를 위해 싸우는 사람의 높은 자리는
자신이 패배하고 있을 때도 싸울 수 있는 사람의 것이다.'

R.W. 세르비스의 시


Posted by huu
,

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
,