C++에 대해서 여러분들의 생각이 듣고 싶어요.

익명 사용자의 이미지

요즘 C++를 한참 책을 보는 중이에요..
지금까지 C로만 하다가..
mfc나 qt같은걸 다뤄볼려고 어쩔수 없이 시대의 흐름을..
따라야 하겠더군요..

winapi로만 해보겠다고 우겨봐도,,결국 만드는건 100킬로바이트이내의
조그만 프로그램이라면 모를까..-_-
엄청 노가다해서 만들어놓은걸 보면,비쥬얼베이직으로
만든것보다 인터페이스가 떨어지는 현실...하하..

그런데 C++를 하다보면,C사용자가 느끼기엔 개념적으로
너무 복잡한게 아닌가 하는 생각이 들더군요..
이젠 좀 정리가 되서,,개념이 어렵다는 느낌은 안들지만,
왜?? 라는 관점에서 보면, 좀 맘에 안드는 구석이 많습니다.

C++를 라이브러리를 사용한다는 관점에서 보면, 편하지만,
그 개념을 가지고 프로그래밍을 한다는것은..
항상 느끼는게..왜 구조체와 함수로 다 할수있는것을,
굳이 클래스를 만들어야 하지?
라는 관념이 공부하는걸 오히려 방해하는 장애물이었던것 같습니다.

C로 에러없는 프로그램을 짜는것보다 C++을 배우고,익숙해져서,에러없는
프로그램을 짜는데 걸리는 노력과 시간이 C++의 장점을 상쇄하는
것 같은 느낌이 자꾸 드는건 왜 그럴까요..-_-

익명 사용자의 이미지

당장 생각나는 C++의 단점 몇 가지

1. 가비지 컬렉터의 부재 언어 자체에서 제공이 안되고 사용자 레벨
에서 별도의 라이브러리로 지원해야 함
2. 다중 상속성과 연산자 중복정의같은 불필요한 기능
3. 불완전한 개체 지향 임의의 타입을 가진 개체가 안되기 때문에
템플리트나 가상 함수같은 괴상한 개념을 도입

장점이라면

1. 이미 많은 사람들이 쓰고 있다는 것

윽, 하나밖에 생각이 안나네요.

결론은 "C를 계속 쓰자!"는 것입니다. C++ 대신 Java를 쓰는 것도
괜찮겠다는 생각이 듭니다. 물론 Java는 포인터 연산이 안되기 때문에
어떤 용도에 대해서는 C++를 완전히 대체할 수는 없겠지만요.

정호종 wrote..
요즘 C++를 한참 책을 보는 중이에요..
지금까지 C로만 하다가..
mfc나 qt같은걸 다뤄볼려고 어쩔수 없이 시대의 흐름을..
따라야 하겠더군요..

winapi로만 해보겠다고 우겨봐도,,결국 만드는건 100킬로바이트이내의
조그만 프로그램이라면 모를까..-_-
엄청 노가다해서 만들어놓은걸 보면,비쥬얼베이직으로
만든것보다 인터페이스가 떨어지는 현실...하하..

그런데 C++를 하다보면,C사용자가 느끼기엔 개념적으로
너무 복잡한게 아닌가 하는 생각이 들더군요..
이젠 좀 정리가 되서,,개념이 어렵다는 느낌은 안들지만,
왜?? 라는 관점에서 보면, 좀 맘에 안드는 구석이 많습니다.

C++를 라이브러리를 사용한다는 관점에서 보면, 편하지만,
그 개념을 가지고 프로그래밍을 한다는것은..
항상 느끼는게..왜 구조체와 함수로 다 할수있는것을,
굳이 클래스를 만들어야 하지?
라는 관념이 공부하는걸 오히려 방해하는 장애물이었던것 같습니다.

C로 에러없는 프로그램을 짜는것보다 C++을 배우고,익숙해져서,에러없는
프로그램을 짜는데 걸리는 노력과 시간이 C++의 장점을 상쇄하는
것 같은 느낌이 자꾸 드는건 왜 그럴까요..-_-

익명 사용자의 이미지

C++이 C 와 다른, 다시말하면 왜 클래스가 필요한가하는 것에 대한 답은 아마 이것이 아닌가 십네요.
클래스를 사용해서 오브젝트를 만들면 이것이 하나의 독립된 개체로 작동을 하기때문에 프로그램의 크기가 커질경우 또는 이전 코드와 비슷하지만 조금 다른 코드를 만들때 또는 업그레이드할 시에 엄청 편하다는 거..
만약 C였다면 information hiding 이 되지 않아 고려해야 할 것이 많겠지요. 만약 내가 이 놈을 바꾸면 프로그램에 어떤 영향이 있을까 등등..

방준영 wrote..
당장 생각나는 C++의 단점 몇 가지

1. 가비지 컬렉터의 부재 언어 자체에서 제공이 안되고 사용자 레벨
에서 별도의 라이브러리로 지원해야 함
2. 다중 상속성과 연산자 중복정의같은 불필요한 기능
3. 불완전한 개체 지향 임의의 타입을 가진 개체가 안되기 때문에
템플리트나 가상 함수같은 괴상한 개념을 도입

장점이라면

1. 이미 많은 사람들이 쓰고 있다는 것

윽, 하나밖에 생각이 안나네요.

결론은 "C를 계속 쓰자!"는 것입니다. C++ 대신 Java를 쓰는 것도
괜찮겠다는 생각이 듭니다. 물론 Java는 포인터 연산이 안되기 때문에
어떤 용도에 대해서는 C++를 완전히 대체할 수는 없겠지만요.

정호종 wrote..
요즘 C++를 한참 책을 보는 중이에요..
지금까지 C로만 하다가..
mfc나 qt같은걸 다뤄볼려고 어쩔수 없이 시대의 흐름을..
따라야 하겠더군요..

winapi로만 해보겠다고 우겨봐도,,결국 만드는건 100킬로바이트이내의
조그만 프로그램이라면 모를까..-_-
엄청 노가다해서 만들어놓은걸 보면,비쥬얼베이직으로
만든것보다 인터페이스가 떨어지는 현실...하하..

그런데 C++를 하다보면,C사용자가 느끼기엔 개념적으로
너무 복잡한게 아닌가 하는 생각이 들더군요..
이젠 좀 정리가 되서,,개념이 어렵다는 느낌은 안들지만,
왜?? 라는 관점에서 보면, 좀 맘에 안드는 구석이 많습니다.

C++를 라이브러리를 사용한다는 관점에서 보면, 편하지만,
그 개념을 가지고 프로그래밍을 한다는것은..
항상 느끼는게..왜 구조체와 함수로 다 할수있는것을,
굳이 클래스를 만들어야 하지?
라는 관념이 공부하는걸 오히려 방해하는 장애물이었던것 같습니다.

C로 에러없는 프로그램을 짜는것보다 C++을 배우고,익숙해져서,에러없는
프로그램을 짜는데 걸리는 노력과 시간이 C++의 장점을 상쇄하는
것 같은 느낌이 자꾸 드는건 왜 그럴까요..-_-

익명 사용자의 이미지

C하다가 C++하시려고 하는가 본데요
C++말고도 널렸습니다.
python, java, perl....
프로그래머는 선택만 하면 됩니다.
꼭 C다음에 C++잘해야 하는 법도 없고
C로도 계속할 수 있습니다.
C가 얼마나 잘 만든 언어인데...

정호종 wrote..
요즘 C++를 한참 책을 보는 중이에요..
지금까지 C로만 하다가..
mfc나 qt같은걸 다뤄볼려고 어쩔수 없이 시대의 흐름을..
따라야 하겠더군요..

winapi로만 해보겠다고 우겨봐도,,결국 만드는건 100킬로바이트이내의
조그만 프로그램이라면 모를까..-_-
엄청 노가다해서 만들어놓은걸 보면,비쥬얼베이직으로
만든것보다 인터페이스가 떨어지는 현실...하하..

그런데 C++를 하다보면,C사용자가 느끼기엔 개념적으로
너무 복잡한게 아닌가 하는 생각이 들더군요..
이젠 좀 정리가 되서,,개념이 어렵다는 느낌은 안들지만,
왜?? 라는 관점에서 보면, 좀 맘에 안드는 구석이 많습니다.

C++를 라이브러리를 사용한다는 관점에서 보면, 편하지만,
그 개념을 가지고 프로그래밍을 한다는것은..
항상 느끼는게..왜 구조체와 함수로 다 할수있는것을,
굳이 클래스를 만들어야 하지?
라는 관념이 공부하는걸 오히려 방해하는 장애물이었던것 같습니다.

C로 에러없는 프로그램을 짜는것보다 C++을 배우고,익숙해져서,에러없는
프로그램을 짜는데 걸리는 노력과 시간이 C++의 장점을 상쇄하는
것 같은 느낌이 자꾸 드는건 왜 그럴까요..-_-

익명 사용자의 이미지

C++는 객체를 상속 받기 때문에, 상위 객체에서 만든 함수들은

그대로 상속받은 객체에서 똑같은 방법으로 사용할 수 있습니다.

음 이것의 장점은 Qt나 MFC 같이 윈도 툴킷 프로그래밍을 해보면

금방 알 수 있습니다.

Tab Control의 크기를 조정하는 함수를 ListBox 에서도 똑같은

방법으로 사용할 수 있기 때문에, 하나를 사용할 줄 알면 나머지도

쉽게 따라할 수 있습니다.

그리고 C의 장점을 모두 가지고 있구요..

따라서 C보다 훨씬 편합니다.

그리고 C++ 싫어하는 사람들이 다중 상속이니 뭐니 해서

C++의 단점을 열거하지만, 글쎄요. 그런 단점을 사용할 정도로

복잡한 문법을 사용해서 C++를 사용하는 사람은 극히 일부분입니다.

제가 본 많은 C++ 개발자들은, 기본적인 C++ OOP 기능에, 기존에

알고 있던 C의 기능들을 섞어서 사용합니다.

Python이다 Java다 여러가지 특징 있는 언어들이 많이 나오지만

대부분의 응용프로그램의 개발은

저급은 어셈블리, 중급은 C, 고급은 C++

을 사용해서 이루어 집니다.

하지만 너무 C++ 때문에 고민하지 마십시오.

C++는 상위 계층 응용 프로그램 개발에 많이 사용되기 때문에, 그만틈 노가다 작업도 많습니다.

가령 Firm-ware 개발같이 저급의 시스템 프로그래밍 하는 사람은 전혀 알 필요가 없지요.

프로그램 언어는 목적을 위한 도구에 지나지 않습니다.

개발 목적에 따라서 필요한거 골라 쓰면 됩니다. )

정호종 wrote..
요즘 C++를 한참 책을 보는 중이에요..
지금까지 C로만 하다가..
mfc나 qt같은걸 다뤄볼려고 어쩔수 없이 시대의 흐름을..
따라야 하겠더군요..

winapi로만 해보겠다고 우겨봐도,,결국 만드는건 100킬로바이트이내의
조그만 프로그램이라면 모를까..-_-
엄청 노가다해서 만들어놓은걸 보면,비쥬얼베이직으로
만든것보다 인터페이스가 떨어지는 현실...하하..

그런데 C++를 하다보면,C사용자가 느끼기엔 개념적으로
너무 복잡한게 아닌가 하는 생각이 들더군요..
이젠 좀 정리가 되서,,개념이 어렵다는 느낌은 안들지만,
왜?? 라는 관점에서 보면, 좀 맘에 안드는 구석이 많습니다.

C++를 라이브러리를 사용한다는 관점에서 보면, 편하지만,
그 개념을 가지고 프로그래밍을 한다는것은..
항상 느끼는게..왜 구조체와 함수로 다 할수있는것을,
굳이 클래스를 만들어야 하지?
라는 관념이 공부하는걸 오히려 방해하는 장애물이었던것 같습니다.

C로 에러없는 프로그램을 짜는것보다 C++을 배우고,익숙해져서,에러없는
프로그램을 짜는데 걸리는 노력과 시간이 C++의 장점을 상쇄하는
것 같은 느낌이 자꾸 드는건 왜 그럴까요..-_-