티스토리 뷰

C

[C++ Primer Plus] CH 2. Setting out to C++

나야 2010. 1. 31. 02:07
C++을 너무 모르는 것 같아서 다시 기초를 좀 쌓기로 생각하고,
책을 하나 구입했습니다. C++ Primer Plus.

실습환경은 우분투 9.10, Eclipse 3.5 + CDT 입니다.
CDT를 사용하기 위해서는
Eclipse 사이트에서 CDT가 포함된 이클립스 배포본을 다운받아도 되고,
Help->Install New Software 에서 설치해도 됩니다.



현재 우분투에 설치되어 있는 GTK에 버그가 있는지 SWT에 버그가 있는지,
어쨌든 GTK를 사용하는 이클립스의 버튼들이 작동하지 않습니다.
단축키를 사용하면 누를 수 있습니다. Next 버튼의 경우 N키를 누르면 됩니다.
어쨌든 CDT를 설치하고, 이클립스를 재시작하고 나서 Perspecitve를 바꾸려고 하니
버튼이 눌리지 않는데, OK 버튼에 단축키가 없습니다.



그냥 C/C++을 더블클릭하면 됩니다.
이제 Perspective를 바꾸고 c++ 프로젝트를 생성했습니다.



전 c++ Beginner 이므로 Hello World C++ Project를 만들었습니다.

그런데 Build가 되지 않아서 보니 g++ 패키지가 설치되어 있지 않습니다.
그래서 다시 g++ 관련 패키지를 설치했습니다.

Project -> Build All(Ctrl+B) 하고,
Ctrl+F11 하면 실행을, F11하면 디버깅을~


아주 간단한 HelloWorld.cpp 입니다.
아주 간단하지만 Java에만 익숙한 저에게는
<< 연산자에 대한 Overloading 이 좀 생소합니다.
이 연산자가 어떻게 정의되어 있는지 보고 싶어서
/usr/include/c++/4.4/iostream 과 ostream 등의 파일을 열어봤지만
Beginner인 저에게는 외계어일뿐.
어쨌든 잘 실행되었습니다.

여기서 잠깐 42 페이지의 C++ Source Code Style을 보고 가죠~
저에게는 번역서가 없어서 옳은 해석인지 알 수 없습니다.
One statement per line
한 줄에는 한 문장만 쓰기
An opening brace and a closing brace for a function,
each of which is on its own line
함수를 위한 열고 닫는 괄호는 별도의 줄에 쓰기
Statements in a function indented from the braces
함수 안의 문장들은 괄호에서 들여쓰기
No whitespace around the parentheses associated with a function name
함수 이름과 연관된 괄호 주위에 공백 넣지 않기
짧은 영어 실력 때문에 번역판'도' 사고 싶어 지네요.
그러나 교보문고에서 삼만 육백원이나 하네요.
그럼, 다음 예제는 p.43의 carrots.cpp 응용(이라고는 하지만 같은 예제)
이 예제를 c프로젝트를 만들어 다음과 작성해보면, 이와 같은데,
아무런 문제없이 빌드되고 실행됩니다.
얼마전에 급 C공부하려고 Visual Studio 2008에서 콘솔 C프로그램 만들었을 때는 변수 선언은 모두 가장 먼저 해야 했던 것 같은데...

어쨌든 C++에서는 다음과 같은 팁이 있다고 합니다.
The C++ style for declaring variables is to declare a variable as close to its first use as possible
변수가 처음 사용되기 직전에 변수를 선언해주세요~

- cin 사용하기
- cout 사용할 때 문자열 병합하기
- cin과 cout, 클래스와의 첫만남
- functions
등등등...

별 내용은 없고,

'using' 지시어에 대한 얘기가 나오네요~
main을 포함한 함수 안에서 사용되면
그 함수 안에서는 그 네임스페이스를 사용할 수 있다네요.

<Review Question>
1. 씨쁠쁠 프로그램에서 모듈을 뭐라고 부를까요?
function?
2. 다음의 전처리 지시기는 뭘하는 걸까요?
#include <iostream>
... iostream에 정의된 데이터타입과 함수를 쓰겠어요~라는 의미?
3. 다음의 문장은 뭘하는 걸까요?
using namespace std;
... cin과 cout을 쓰겠어요.
4. "Hello, world" 와 줄넘김을 표시하는 문장을 작성하세요~
cout << "Hello, world" << endl;
등등등~


뒤에 Programming Execises 에는 두번째 장이라서 그런지 별로 재밌는 문제는 없네요.

자 이제 C++의 첫발을 내딪었습니다.
앞으로 남은 부분은
CH3. Dealing with Data
CH4. Compound Types
CH5. Loops and Relational Expressions
CH6. Branching Statements and Logical Operators
CH7. Functions: C++'s Programming Modules
CH8. Adventures in Functions
CH9. Memory Models and Namespaces
CH10. Objects and Classes
CH11. Working with Classes
CH12. Classes and Dynamic Memory Allocation
CH13. Class Inheritance
CH14. Reusing Code in C++
CH15. Friends, Exceptions, and More
CH16. The string class and the Standard Template Library
CH17. Input, Output, and Files

사실 뭔가 많이 남아있는 것 같지만, Java 기초책, 예를 들면, 열혈강의 자바 요런 책 한번 쭉 보는 거나 별 다를 바 없다는 생각을 갖고~하루에 한장씩~후딱 끝내버리겠슴다!

(씨언어책 이틀보고 면접보러 갔더니 면접관 표정이 별로 좋지 않았다는)



(바로 위 달력 그림은 Daum 캘린더 캡쳐해서 사용했습니다)

이번 장의 영어.
Stripped of the trimmings: ?
p.31 Stripped of the trimmings, the sample program shown in Listing 2.1 has the following fundamental structure

prevalent
The current prevalent philosophy is that it's preferable to be more discriminating and limit access...
- 본문 중에서
These prejudices are particularly prevalent among people living in the North.
- Naver 영어사전

myriad
C++ programmers are blessed (or cursed) with myriad options ...
- 본문 중에서
Designs are available in a myriad of colours
- Naver 영어사전

* 그나저나 이 스킨을 아이팟 터치에서 보니 레이아웃이 깨지네요~ 쓰읍


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함