C 와 C++ 은 전혀 다른 별개의 언어입니다.
이름이 비슷하다고 "뭐 비슷하겠지" 라고 생각한다면 큰 오산입니다.
물론 문법적으로 많은 부분이 겹치긴 합니다만( 문법적으로 많은 부분이 겹치는건 C 언어와 PHP 언어도 그렇습니다 ), 언어가 만들어진 배경이라던지 언어가 사용되는 용도라던지 언어의 특징이나 성격이라던지 그런 모든 부분에서 C 와 C++ 은 전혀 다릅니다.
만일 배우시겠다면 우선 C 를 배운 후에 C++ 을 배울 것을 권합니다. 왜냐하면 C -> C++ 순서로 배운 사람은 C 언어도 쓸 수 있고 C++ 도 쓸 수 있게 됩니다만 C++ 만 배운 사람은 C 는 못쓰고 C++ 만 쓸 수 있습니다.
보통의 C 코드에 클래스 (오브젝티디 랭귀지)부분이 추가 되었따고 말할수 있습니다. 대부분 C 를 많이 쓰지만 꼭 C++ 이 필요한 경우도 있습니다.
단순 학습차원이라면 C++ 을 하시는것이 더 배울것이 많을것 입니다. 오브젝티브 프로그래밍은 여러군데서 이용이 가능하니까요.
- 겨울아찌 -
C++에 추가된 것은 단지 객체지향(object-oriented) 부분만이 아닙니다. 템플릿으로 대표되는 총칭적 프로그래밍(generic programming)을 빼먹으면 안 됩니다. 클래스와 템플릿은 C++의 양대 기둥이라고 할 수 있으니까요.
Bjarne Stroustrup wrote:
C++ is a general-purpose programming language with a bias towards systems programming that
- is a better C
- supports data abstraction
- supports object-oriented programming
- supports generic programming
C 와 C++ 은 전혀 다른 별개의 언어입니다.
이름이 비슷하다고 "뭐 비슷하겠지" 라고 생각한다면 큰 오산입니다.
물론 문법적으로 많은 부분이 겹치긴 합니다만( 문법적으로 많은 부분이 겹치는건 C 언어와 PHP 언어도 그렇습니다 ), 언어가 만들어진 배경이라던지 언어가 사용되는 용도라던지 언어의 특징이나 성격이라던지 그런 모든 부분에서 C 와 C++ 은 전혀 다릅니다.
만일 배우시겠다면 우선 C 를 배운 후에 C++ 을 배울 것을 권합니다. 왜냐하면 C -> C++ 순서로 배운 사람은 C 언어도 쓸 수 있고 C++ 도 쓸 수 있게 됩니다만 C++ 만 배운 사람은 C 는 못쓰고 C++ 만 쓸 수 있습니다.
"C++를 배우기 위해서" C를 배울 필요는 없습니다. 오히려, 능숙한 C 프로그래머는 C++의 새로운 방법을 익히지 못하고 계속 껍데기만 C++인 C 스타일의 프로그램에서 벗어나지 못하며 C++를 충분히 활용하지 못하는 경우도 많이 있습니다.
Bjarne Stroupstrup도 이 점은 명확히 하고 있습니다: http://www.research.att.com/~bs/bs_faq.html#prerequisite
그리고 C를 배운 사람은 C를 쓸 수 있고, C++를 배운 사람은 C++를 쓸 수 있는 것이지, 배우는 순서가 문제가 되는 것은 아닙니다. C를 배우고 나서 C++를 배우는 것이 C++를 배우고 나서 C를 배우는 것보다 특별히 권장되는 방법이라고 할 수는 없습니다.
C++ 이라는 이름부터가 상당히 철학적입니다.
C 에다 증가연산자를 붙인것이죠. :D
그럼 C++ -> C = C + 1; 이 되는데, 그 1 이 무엇이냐면 OOP 개념입니다.
C++ 자체는 C의 개념을 확대해서 만든것 이지만, 그 방대한 확대는 새로운 언어를 탄생시켰다고 생각하면 됩니다. :D
개인적인 생각이긴 하지만....
C 나 c++ 둘다 능숙하게 구사 하시려면....
처음부터 둘다를 염두해 두고....공부 하고...이거하다 저거 하다..
하는 것 보다..
둘중 하나를 택해서.... 하나에 집중을 하고....
자기 생각에 능숙하다 라는 정도 생각이 들때 까지...
하나를 끝내고...
그때 다른 것을 하는게 좋을거 같네용..
글세요. 필요한대로 배우시죠.
C++ > C 라고 생각하면 될까 모르겠네요.
보통의 C 코드에 클래스 (오브젝티디 랭귀지)부분이 추가 되었따고 말할수 있습니다. 대부분 C 를 많이 쓰지만 꼭 C++ 이 필요한 경우도 있습니다.
단순 학습차원이라면 C++ 을 하시는것이 더 배울것이 많을것 입니다. 오브젝티브 프로그래밍은 여러군데서 이용이 가능하니까요.
- 겨울아찌 -
- 겨울아찌 -
winchild@gmail.com
C와 C++
C++ 은 증가연산자.
C = C+1; /* C = C + 객체지향 */
하하 ... ^^
C언어에 "C언어로 객체지향적인 프로그래밍을 위한 여러가지 사항"들이 추가가 되었습니다.
처음 공부를 한다면 C++을 공부하는 쪽이 문법적인 측면에서는 C언어를 커버하기때문에 더 많은것이 남을 것 같습니다.
하지만, 프로그래밍을 하는 기법에는 많은 차이가 있습니다.
C언어로는 절차적인 방법으로 프로그램을 제작하고, C++언어로는 객체지향적인 시점에서 프로그램을 바라보며 작성하게됩니다.
요 몇년 사이의 유행은 객체지향이었죠. 8)
"꿈이 있는 자는 흔들리지 않는다! "
[url]http://ldk.sarang.net [/url]
"꿈이 있는 자는 흔들리지 않는다! "
[re]
C 와 C++ 은 전혀 다른 별개의 언어입니다.
이름이 비슷하다고 "뭐 비슷하겠지" 라고 생각한다면 큰 오산입니다.
물론 문법적으로 많은 부분이 겹치긴 합니다만( 문법적으로 많은 부분이 겹치는건 C 언어와 PHP 언어도 그렇습니다 ), 언어가 만들어진 배경이라던지 언어가 사용되는 용도라던지 언어의 특징이나 성격이라던지 그런 모든 부분에서 C 와 C++ 은 전혀 다릅니다.
만일 배우시겠다면 우선 C 를 배운 후에 C++ 을 배울 것을 권합니다. 왜냐하면 C -> C++ 순서로 배운 사람은 C 언어도 쓸 수 있고 C++ 도 쓸 수 있게 됩니다만 C++ 만 배운 사람은 C 는 못쓰고 C++ 만 쓸 수 있습니다.
C++ is better than C 이 말을 이해 하기 까지 얼마나
C++ is better than C
이 말을 이해 하기 까지 얼마나 많은 시간이 걸렸는지 몰라요. 8)
C를 알고 있다가 C++를 접해본 사람중 한명으로...둘다 만만치
C를 알고 있다가 C++를 접해본 사람중 한명으로...
둘다 만만치 않습니다. ㅠ.ㅠ
현재 전 거의 C만 쓰고 있어서 아무래도 C를 먼저 권해 드리고 싶습니다.
아마 C는 열악한 환경(지원이 별로 없는 상황 --, 예를 들어 임베디드 시스템이라던지... 드라이버라든지...)에서는 쓰일수 밖에 없습니다.
하지만 그냥 공부하시고 싶다면 아무래도 C++이 더 적합할것 같군요.
Re: 글세요. 필요한대로 배우시죠.
C++에 추가된 것은 단지 객체지향(object-oriented) 부분만이 아닙니다. 템플릿으로 대표되는 총칭적 프로그래밍(generic programming)을 빼먹으면 안 됩니다. 클래스와 템플릿은 C++의 양대 기둥이라고 할 수 있으니까요.
Re: [re]
"C++를 배우기 위해서" C를 배울 필요는 없습니다. 오히려, 능숙한 C 프로그래머는 C++의 새로운 방법을 익히지 못하고 계속 껍데기만 C++인 C 스타일의 프로그램에서 벗어나지 못하며 C++를 충분히 활용하지 못하는 경우도 많이 있습니다.
Bjarne Stroupstrup도 이 점은 명확히 하고 있습니다: http://www.research.att.com/~bs/bs_faq.html#prerequisite
그리고 C를 배운 사람은 C를 쓸 수 있고, C++를 배운 사람은 C++를 쓸 수 있는 것이지, 배우는 순서가 문제가 되는 것은 아닙니다. C를 배우고 나서 C++를 배우는 것이 C++를 배우고 나서 C를 배우는 것보다 특별히 권장되는 방법이라고 할 수는 없습니다.
학습순서
1. C 학습(연습)
2. 방법론 학습
2.1 구조적 방법론
2.2 객체지향 방법론
3. C를 이용하여 객체지향 방법론적으로 프로그램 만들어보기
4. C++ 학습(연습)
단순히 1, 4번만 취하면 자신이 그렇게 영특하지 않다고
했을때 c/c++ 의 구문론적 차이만 알 수 있을뿐입니다.
하지만 1~4번의 과정을 모두 거치면
누구나 자연스럽게 c/c++의 의미론적 차이까지를 알게 됩니다.
C++ 이라는 이름부터가 상당히 철학적입니다.C 에다 증가연산자를 붙
C++ 이라는 이름부터가 상당히 철학적입니다.
C 에다 증가연산자를 붙인것이죠. :D
그럼
C++ -> C = C + 1;
이 되는데, 그 1 이 무엇이냐면 OOP 개념입니다.C++ 자체는 C의 개념을 확대해서 만든것 이지만, 그 방대한 확대는 새로운 언어를 탄생시켰다고 생각하면 됩니다. :D
제생각에는
개인적인 생각이긴 하지만....
C 나 c++ 둘다 능숙하게 구사 하시려면....
처음부터 둘다를 염두해 두고....공부 하고...이거하다 저거 하다..
하는 것 보다..
둘중 하나를 택해서.... 하나에 집중을 하고....
자기 생각에 능숙하다 라는 정도 생각이 들때 까지...
하나를 끝내고...
그때 다른 것을 하는게 좋을거 같네용..
Think..
C++를 공부함에 있어서!
--------------------------------------------------------------------------------
제 생각은 둘다 공부하는게 좋습니다
C++은 C에 관한 거의 모든걸 포함하고 있고
객체지향과 제네릭 프로그래밍 그리고 STL이라는 표준라이브러리를
지원해 줍니다
너무나 엄청나죠
하지만 C++책에는 저 많은걸 포함하려다보니
C++의 일부분인 C에 관한 내용은 많이 다루지 않습니다
분명 C도 C++의 일부분인데 말이죠
[약간의 문법상 차이가 있다고 하지만 거의 같다고도 볼수 있죠]
C++의 일부분인 C를 제대로 배우고자 한다면 C책을 보는것을 권장합니다
물론 큰 틀은 C++이겠지만요
하지만 C에 익숙해 져버리면 C++가지고 C++의 작은 일부분인 C 부분만을 사용하는 오용을 낫기도 하죠
제가 배울 순서는 C -> C++
로 배운뒤에
자바 언어를 좀 사용해보는게 C++로 객제지향적으로
프로그래밍을 할수 있게 도와줍니다
자바는 디폴트로 무조건 클래스 단위로 하기때문에 객체지향을 배우는데 매우좋죠
C++은 C로도 짤수 있기때문에... 왜 클래스를 쓸까?하는 생각으로
객체지향적으로 짜지 않는 경우가 발생해버립니다
한마디로 무늬만 C++인 C코드가 나오는것이죠
C++은 너무나 많은걸 지원해 주기때문에 정말 잘배워야 할거 같습니다
그럼
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스
댓글 달기