![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
저는 좀 다른 생각입니다.
(웬지 안티가 되는 듯해서 ㅡ.ㅡ;;) 지훈군이 저에게 술마시면서 "형 전산학의 목표가 몬지 알아?" "몬데?" "누구나 다 프로그래밍을 할 수 있도록 하는 것이야" 모 정확한 대사는 기억이 나지 않습니다만, 저는 짧은 소스보다는 직관적이고 좀더 이해하기 쉬운 코드를 선호합니다. 처음에 프로그래밍을 접할 때는 한 줄이라도 적게 쓰려고 노력했었고, 교수님들도 그것이 좋다고 강의까지 하시더군요. 자유로운 표현 능력 자체가 문제라고 보지는 않습니다만, 꼭 입문자가 아니더라도 위의 제시한 문법을 두고 이야기하는 것은 아니지만서도 짧은 라인과 문자수가 단순함을 대표하는 것이 아니라고 보며, 역시 알고리즘과 수학의 아름다움은 단순함에 있다고 생각합니다. 그리고, 그 단순함은 누구나 쉽게 이해할 수 있는 모양새이어야 한다고 생각합니다. 바뜨 그러나... C++ Builder를 사용함에 있어서는 위의 연산자들의 차이점들은 한번쯤 짚고 넘어가야 할 듯 한데요...
예를 들어 int i = 0; --> int i; i = 0; 이건 분명 다르지 않습니까... 성능에 차이가 있습니다. 보통은 무시해도 상관 없지만서도... 또한 += 연산자등도... 빌더의 프라퍼티에선 허용하지 않죠. 왜 허용되지 않는지를 설명하려면 어쩔 수 없이 다뤄야 하지 않을까 싶네요. ++연산같은 경우 순서문제는 차치하더라도 성능상 유리하다정도는... 짚고 넘어가는게 좋지 않나 싶습니다. 그러나 한가지 사족을 덧붙인다면 위의 문제들은 본문의 '구성'으로 어느정도는 짚어줄 수 있다고 봅니다. 큰 줄기는 간단 명확하게 하면서도 실력이되면 나중에 이부분은 점검해봐라... 정도로... 부록에 지금까지 짚어준 '참고'들만 따로 인덱스를 만들어 주는 방법도 있고... 공부 끝나고 어느정도 익숙해지면 한단계 더 나아가기 위해 봐야 할 것들을 알려주는 것... 대개 초보들의 가장 큰 어려움은 자신이 뭘 모르는지 모른다는거고... 이 부분을 도와줄 수 있다면 초보를 위한 책으로써는 최고가 아닐까 싶네요. ^^ 음... 별로 제가 글 쓴 의도와는 상관 없는 부분에 너무 집착하시는군요.
결국 척 보면 카피컨스트럭터를 사용하는 것과 그렇지 않은것의 차이를 지적한 것이지 않습니까... 당연히 int와 같은 기본형들은 컴파일러의 최적화 여부에 따라 같은 코드가 만들어질 수도 있고 그렇지 않을수도 있을겁니다. 그렇다면 int와 같이 단순한 경우 말고 멤버 하나짜리 class의 경우로 확장해서 생각해 보시면 될 것 아닙니까... 이걸 테스트 해 보세요... 어셈코드도 확인해 보시구요. 꼭 이렇게 친절한 설명이 필요한건지 모르겠군요. class TMyClass { public: int v; TMyClass() {v=0;} TMyClass(int value) : v(value) {} TMyClass & operator = (int rhs) {v = rhs;} }; int main(int argc, char* argv[]) { TMyClass a; a = 10; TMyClass b = 20; TMyClass c(30); return 0; } 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |
i++ --> i = i + 1; 같은 단항연산자는... for루프나 아니면 포인터증가 등의 특정상황에서만 사용하는것이 좋을것같고..
i += 5; --> i = i + 5; 같은 연산자는 아예 배제하는편이 =_=; 가독성이 심하게떨어집니다
int i = 0; --> int i; i = 0; 는 어느정도 자유롭게 사용해도 상관없다고 생각해요.