Java/C#에서 C++로 전환하는 가장 좋은 방법은 무엇입니까?


10

내 대학에서 대부분의 수업은 Java로 진행되었습니다. 저는 최근 여름 인턴쉽에서 C# (및 Visual Studio 환경)을 배웠습니다. 이제 Intro to Computer Graphics 수업을 듣고 수업을 가르치는 대학원생이 GLUT를 통해 OpenGL 바인딩에 액세스하기 위해 C++을 사용하는 것을 선호합니다.

Java/C#에서 C++로 전환하는 방법에 대한 좋은 자료가있는 사람이 있습니까? 분명히 포인터는 큰 문제가 될 것이지만, 내가 알아야 할 다른 것들이 있을까요? 모든 자습서, 안내서 등은 매우 유용 할 것입니다!

감사합니다.

8

그래, 나는 같은 버그로 조금을 얻었다. 대학은 자바에 의지하는 경향이 있었고 프로젝트 기간 동안 작업하고 싶은 언어를 선택할 수있었습니다.

가장 좋은 방법은 작은 단계부터 시작하여 아기 단계를 따르고 거기에 다다랐을 때 혼란스럽게하는 것뿐입니다. 또한 소스 코드를 공개 한 프로젝트를 찾아보십시오. 그들이 프로그램을 어떻게 구성하는지보십시오. 기본적으로 개념을 고집하는 것입니다. 웹 주변에는 많은 정보가 있습니다.

C++ game development book을 재미있게 마시고 너무 빨리 마비되지 않도록하십시오.

여기 스콧 마이어스에서는 C++을 배울 수있는 좋은 책이에 의해 ++


4

이미 Java/C#을 알고 있다면 C++ 대신 C로 직접 이동하는 것이 좋습니다. 웹 사이트에 따르면, GLUT는 C++과 동일한 바인딩을 C++과 같이 가지고 있으므로 모두 설정해야합니다. 어쨌든, C를 배우는 가장 좋은 방법은 "The C Programming Language"의 복사본을 구입하여 읽고 C 컴파일러와 함께 앉아서 물건을 실행시키는 것입니다.


2

Scott Meyers의 Effective C++는 C++을 배우는 데 도움이되는 훌륭한 책입니다. 기본적으로 모든 C++ 프로그램을 개발할 때 사용할 주요 개념을 소개합니다.


2

효과적인 C

http://www.cplusplus.com/

http://www.wikipedia.com

http://www.cprogramming.com/

을 배우면서 내가 유용하다고 어떤 장소입니다. 기본적으로 모든 C++ 프로그램을 개발할 때 사용할 주요 개념을 소개합니다.

나는 3 권 모두에서이 책을 아주 좋아하는데, 내가 UT에서 선배님으로 지낸 책 중 하나 였지만 그것은 시작 책이 아닙니다. 메이어 (Meyer)의 저작을 읽을 때까지는 컴파일러를 사용하지 않는 편이 낫지 만 C++에서는 훨씬 편하게 사용할 수 있습니다.

여전히 인쇄되어 있는지 알 수는 없지만 찾을 수 있습니다. C++ 탐색에 유용하지만 파스칼의 포인터도 매우 편리합니다. 물론 나는 15 년 전에 OOP이 무엇인지를 배워야한다는 것을 잊고 있습니다. 이제는 좀 더 추측됩니다. 아마 메이어가 라인을 벗어난 것이 아닙니다. 생각?


2

위키 백과에 관한 기사는 comparisons between Java and C++입니다.

C++에서 확인 된 예외에 대해 걱정할 필요는 없지만 const correctness에 대해 알아야합니다.


2

구문과 메모리 관리의 두 가지 주요 차이점이 있습니다.

C++에는 이미 Java에서 알고있는 포인터보다 강력한 (또는 해석 능력에 따라 덜 강력한) 객체 참조가 있습니다.

자바에서는이 작업을 수행 할 수 있습니다 당신이 할 것 C++에서

Thing mything = new Thing(); // mything is an object reference 
mything.method(); 

:

Thing * mything = new Thing(); // mything is an object pointer 
mything->method(); 
delete mything; 

을 구문 차이는 분명하다 : - '.' '>'대신 객체 메소드를 포인터에서 객체로 호출 할 때. C++에서는 객체로 작업 할 때 명시 적으로 메모리를 해제해야합니다. 마지막 날에 C++과 Java에서 똑같은 일을하고, 객체를 인스턴스화하고 메소드를 호출하고, 모든 라인의 끝에 쓸모없는 세미콜론을 넣고 있습니다. 파이썬이 매우 인기를 얻고있는 것은 당연한 것입니까? :

mything = Thing() # mything is whatever I want it to be 
mything.method() 

나머지 절반은 괜찮은 C++ 텍스트를 건너 뛰면 나머지 부분을 채울 수 있습니다.


2

브루스 에켈 (Bruce Eckel)의 Thinking in C++도 철저히 권장합니다. 이미 숙련 된 프로그래머를위한 환상적인 책으로 C++ 사고 방식을 원합니다.

그는 책의 전자 버전을 만들 정도로 친절합니다 available for free.


2

C++을 배우는 사람은 Stroustrups "The C++ Programming Language"를 읽는 것이 좋습니다. 마이어스와 에켈 (Eckel)은 훌륭한 것들이 있지만, 언어가 무엇인지, 그가 어떻게 사용되어야 할지를 결정한 사람으로부터 배우는 것을 능가하는 것은 없습니다.


2

나는 똑같은 문제가있었습니다. 내가 찾을 수 있었던 유일한 책은 "Pro Visual C++ 2005 for C# Developers" by Dean C. Wills이었다. 훌륭한 예를 들어 읽으면 좋습니다. 책이 나오는 각도가 아마도 당신이 찾고있는 것이라고 생각합니다.


1

메모리 처리시 완전히 다른 느낌이 필요합니다. 또한 더 이상 필요하지 않은 모든 것을 해제하는 것에 대해 생각해보십시오. Java 및 C#에서는 객체를 놓아두면 메모리가 깔끔하게 정리됩니다. CPP에서는 수행 할 수 없습니다.