가끔은... 나도 내가 왜 이러는지 몰라.
정말 나도 이해할 수 없는데,
네가 나에게 도대체 무언지도 모르는데...

난... 네 생각에 아무것도 할 수가 없어.

Thinking Little Squirrel...
... 나도 전에 있던 사람을... 전에 있던 사랑을 꺼내야 하는데...
나 혼자서 꺼내기에는 너무 힘들다...
마치, 어릴 때부터 소중히 여기던 물건을 버리는 것처럼...
누군가가... "이젠 그런건 필요없어. 너에게 지금 정말 필요한 건 이게 아니야"라고 하며
대신 꺼내어 버려주었으면 좋겠다...

그리고, 그 자리에 그사람이 대신 들어와 주면 좋겠다...

Thinking Little Squirrel...
보통의 사람이라면 이 글을 읽고서 자신이 사랑했던 혹은, 사랑하는 사람에 대해서
기억을 떠 올릴 것이다.
하지만, 난 왠지 모르게 내 친구들이 떠올려진다.
내 삶이라는 연극 속에서 당신은 언제나 멋진 주연입니다.
@^-^@

Thinking Doyouremember?...

사랑이라는 것은... 무얼까? @^-^@

사랑하는 사람에게...

자신의 사랑을 보여주지 못하는 사람은...

아마도...

살아도 사는 이가 아닐 것이다...

Thinking Little Squirrel...


가끔 내가 너무 우물안의 개구리가 아닌가 싶을 떄...
이젠 우물안에서는 내가 왕이라는 생각을 가지고 살아야지.

나 비오는 날 너무 좋아하는데...
내가 그렇게도 하고 싶었던 말들이
하늘에서 내리는 것을 보고 위안이 되었었나 보다...

Thinking Little Squirrel...

남자가 무릎을 꿇는다는 것... 정말 쉽지 않은 일이다.
그렇게 어려운 것을 꼭 해야할 때에 할 수 있는 용기 또한 정말 쉽지 않은 일이다.
새로운 사랑을 만나기 위해서는...

사람은 누구나 사랑하는 사람을 만나고, 또 헤어진다.
하지만, 어떤 사람은 예전의 사랑을 가슴에 품고 살고,
어떤 사람은 새로운 사랑을 만나 그 사랑만을 가슴에 품는다.

누군가는 이런 이야기를 한다. 많은 사람을 만날 수록 사랑에 더 잘 알게 된다고.
하여, 나도 많은 여자를 만나보라는 이야기를 많이 들어보았다.
솔직히 새로운 사람을 만나게 되면, 이전에 했던 나의 실수들은 하지 않으려 노력하게 된다.

사랑을 하면서 얼마나 많은 실수를 하며, 마음 아파하는가?
헤어져서야 "다신 그런 실수는 하지 않을꺼야"라고 스스로를 위로하지 않는가?
하지만, 다음 사랑을 만나면 같은 실수는 항상 하게 되는 것이...

나만 그런건가? 아니면, 누구나 다들 그럴까?...

@^-^@
* Question (김현수)

조교형들이 올려주신 프로그램상에서는 pidx를 클래스내에서
 
TelPhoneBook() : pidx(0)            

위와 같이 변수를 함수처럼 사용한 부분이 있는데 int pidx = 0; 과 비교해서

어떤 차이가 있는지 그리고 위와같은 사용은 c에서는 본적이 없는데

약간의 문법적인 내용까지 알려주시면 감사하겠습니다...

그럼 수고하십시오~~~~^^;


* Answer (박성환)

저희 조교들도 이번기회에 정확히 배우고자

교수님께 직접 문의를 드렸습니다.

알고보니, 저희가 모르는 심오한 세계가 또 있더군요...

(정말, 배움의 길은 끝이 없나 봅니다... 에궁... 어려버~)

생성자에

class A
{
   C c;
   A(C c1) : c(c1)
  {
  }
}

을 A로 하고,

class B
{
  C c;
  B(C c1)
  {
     c = c1;
  }
}

을 B라고 하면, 실제로 엄청난 차이가 있었습니다.

머, 위의 예 보다는 멤버변수가 또 다른 Class일 때 특히 그런데요,

실제로 Compile을 하게 되면, A와 같은 경우에는 Machine Code가 확연히 줄어들게 됩니다.

즉 C라는 Class를 인자로 받아 대입하게 되면, B와 같은 경우에는

복사생성자가 호출이 됩니다.

실제로 C 객체가 생성이 된 뒤 B class의 C class부분에 복사생성자로 초기화가 진행됩니다. (Memory가 한번 더 할당이 된다는 걸 아시겠죠?)

하지만, A의 경우 A class의 생성자가 호출이 되면, A Class의 C Class부분은 곧바고 C Class의 생성자로 초기화를 하게 됩니다.
(Memory가 순수 A class 만큼 할당이 된다는 걸 아시겠죠?)

때문에 두 코드에는 심오한 차이가 존재했습니다.

위와 같은 경우에는 Memory에도 차이가 나겠지만,

중요한 것은 Machine Code의 양이 줄어든다는 것입니다.

복사생성자가 호출되지 않는 (기본 Type 등등) 경우에는 실제 Memory는 별 차이가 없게 되지만,

Machine Code는 차이가 나게 됩니다.



최근에는 Compiler가 급속한 성장을 하여 기본 type에는 큰 차이를 보이지 않습니다. Compiler에게 "-o" 옵션을 주면 최적화를 진행하게 되는데,

이때 기본 type같은 경우 B경우를 A와 같은 처리를 하여 Machine code를 알아서 줄여주는등, 알아서 변환을 하게 됩니다.



머, 사용하는 입장에서는 큰차이가 없지만, 중요하게 알아두시면 좋을 것 같네요.

왜? C class의 크기가 대용량의 크기를 가진다고 가정해 봅시다...

B와 같이 사용하면... 우리가 모르는 사이에... Program이 죽어버릴지둥...

@^-^@

이런 지식하나하나가 학원에서는 절대 배울 수 없는 지식이겠죠?

잘 알아두시길 바랍니다~

그리고, 현수에게 고맙네요~ 덕분에 좋은것을 알게 되어서~ 쌩유~

@^-^@

+ Recent posts