chapter 01. C++ 언어

38
CHAPTER 06. 가가 가가가 가가 가가 가가가가 가가 가가가가 가가가가가 원원원 원원 IT 원 원원원 C++ 가가가가가 가가 ehanbit.net

description

chapter 01. C++ 언어. 01. C++ 언어의 소개. C 언어를 기반으로 객체지향 패러다임을 더하여 만든 언어 분산 시스템 , 임베디드 시스템 , 시스템 프로그램 , 과학 계산용 프로그램 등의 다양한 분야에 대해서 적용됨 . 많은 운영체제에서 C++ 언어로 개발이 가능한 개발환경이 갖추어져 있음 . 국제 표준이 존재하므로 , 국제 표준에 의거해 작성된 프로그램은 어디에서든지 같은 의미 낮은 레벨의 접근이 가능하므로 손쉽게 시스템 레벨의 프로그램을 작성할 수 있도록 지원한다 . - PowerPoint PPT Presentation

Transcript of chapter 01. C++ 언어

Page 1: chapter  01. C++  언어

CHAPTER 06.

가상 함수와 다중 상속

초보자를 위한 객체지향 프로그래밍

√ 원리를 알면 IT 가 맛있다C++ 프로그래밍 입문

ehanbit.net

Page 2: chapter  01. C++  언어

한빛미디어㈜ - 2 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

chapter 01.

C++ 언어

Page 3: chapter  01. C++  언어

한빛미디어㈜ - 3 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

01. C++ 언어의 소개

C 언어를 기반으로 객체지향 패러다임을 더하여 만든 언어

분산 시스템 , 임베디드 시스템 , 시스템 프로그램 , 과학 계산용 프로그램 등의 다양한 분야에 대해서 적용됨 .

많은 운영체제에서 C++ 언어로 개발이 가능한 개발환경이 갖추어져 있음 .

국제 표준이 존재하므로 , 국제 표준에 의거해 작성된 프로그램은 어디에서든지 같은 의미

낮은 레벨의 접근이 가능하므로 손쉽게 시스템 레벨의 프로그램을 작성할 수 있도록 지원한다 .

명령형과 객체지향의 개념뿐만 아니라 제네릭 프로그래밍 , 함수형 프로그래밍 등의 다양한 패러다임을 지원함 .

Page 4: chapter  01. C++  언어

한빛미디어㈜ - 4 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

ISO/IEC 14882 – Programming Language C++

국제적으로 명망과 인지도가 있는 각국의 프로그래밍 언어 전문가들에 의해서 만들어진 C++ 언어의 공통된 협약C++ 에 대한 국제표준으로 ISO/IEC 에서 만든 공통 협약으로 갱신될 때마다 버전이 바뀌며 , 현재 최종 버전은 14882:2003 이다 .

C++ 언어의 표준안은 ANSI (American National Standard Institute) 에서 처음 시도되었으며 , 1989 년 ANSI C++ 표준이 제공됨 .

일반적으로 C++ 프로그램은 이 국제표준이 제정하고 있는 규약을 만족하는 프로그램만을 의미한다 .

C++ 프로그램을 작성하고 실행하는 환경 간의 차이를 최소화하고 , 각국의 전문가들과 공통된 언어로 의사소통이 가능함 .

국제 표준을 따를 경우 의사소통과정에서 발생할 수 있는 불필요한 자원의 낭비를 줄이고 , 이식성을 높일 수 있다는 장점이 있다 .

Page 5: chapter  01. C++  언어

한빛미디어㈜ - 5 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

멀티 패러다임

프로그래밍 언어의 패러다임 – 프로그래밍 언어에서 추구하는 대상이나 강조하는 기본 개념C++ 언어는 하나의 언어에서 명령형 , 객체지향 및 함수형 , 제네릭 , 메타 프로그래밍 등을 제공하는 멀티 패러다임 을 지원함 .C++ 언어의 주요 패러다임

방식 설명

명령형(Imperative)

일련의 순서로 구성되며 , 나열된 순서대로 프로그램이 수행

함수형(Functional)

함수의 형태로 프로그램을 작성함

객체지향 (OO) 프로그램을 객체의 집합으로 구성하여 , 메시지의 상호교환을 통한 처리 수행

제네릭 (Generic) 코드의 재사용과 일반적인 개념을 추상화하기 위한 개념

메타 (Meta) 컴파일 시간에 모든 실질적인 계산이 끝나 실행 시간에 영향을 최소화

Page 6: chapter  01. C++  언어

한빛미디어㈜ - 6 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

C 언어와 C++ 언어

C++ 언어는 C 언어의 패러다임과 언어적인 부분까지 포함하는 좀 더 큰 범위를 차지함 .C++ 언어는 초기에 만들어질 때 C 언어의 언어적인 부분을 가져오고 클래스의 개념을 확장하는 것으로 시작했음 .현재 C 언어와 C++ 언어는 독립적으로 표준화가 계속되고 있으며 , 표준화의 추진 그룹 역시 상호간에 많은 영향을 미치고 있음 .C 언어와 C++ 언어의 차이점코멘트 스타일에 // 추가 문자 상수 (Charater Literal) 의 타입문자열 상수의 한정어 임시 선언 (Tentative Declaration)Struct 파일 범위에서 선언된 명칭호환되는 타입 (Compatible Type)void * 에서 일반 포인터로의 변환암시적 선언 (Implicit Declaration)

Page 7: chapter  01. C++  언어

한빛미디어㈜ - 7 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

02. C++ 언어와 객체지향 프로그래밍

소프트웨어의 위기 해소 및 생산성 증대를 위해서 제안된 많은 기술 중에서 객체지향 설계 / 개발 기법이 가장 큰 성과를 거두었음 .

C++ 언어는 C 언어에 당시 Smaltalk, Eiffel 등의 언어에서 지원하던 객체지향의 개념을 접목하여 태동됨 .

클래스 , 상속 , 오버로딩 , 오버라이딩 등의 C++ 언어의 많은 기술적 요소들이 객체지향을 지원하기 위해서 존재함 .

C++ 언어에서 지원하는 객체지향 개념은 구조적 방법에 의한 프로그램에 비해 가독성이 높으며 , 소프트웨어의 생산성을 높일 수 있도록 함 .

C++ 언어는 객체지향뿐만 아니라 다양한 패러다임을 지원함 .

Page 8: chapter  01. C++  언어

한빛미디어㈜ - 8 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

구조적 방법

구조적 방법의 개념– 문제에 대한 분할 및 정보 (Divide and Conquer) 의 개념으로

문제를 분해하고 , 이를 단계별로 해결하는 방법– 프로그램의 실행 흐름을 강조하므로 절차지향이라고도 하며 , C 언어를

비롯한 많은 프로그래밍 언어들이 이를 지원함 .

구조적 방법의 단점- 개발자가 실세계의 문제보다 프로그램이 실행되는 기계의 관점에서

문제를 해결해야 한다는 어려움이 있음 .- 대형 소프트웨어에서 잠재적인 오류를 증가시킬 가능성이 있음 .- 처리 절차에 대해서만 강조하기 때문에 데이터에 대한 고려가 부족해

데이터가 제대로 보호되지 못함 . ( 전역변수 )

Page 9: chapter  01. C++  언어

한빛미디어㈜ - 9 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

객체지향 방법

객체지향 방법론– 소프트웨어 시스템을 구성하는 요소를 인터페이스와 데이터를 포함한

객체의 단위로 나누고 , 객체간의 메시지 전달을 통해 문제를 해결– 실 세계의 문제를 직접 묘사할 수 있는 장점 및 재사용성에 의해 빠른

소프트웨어의 개발 및 생산성의 증대에 도움을 줌 .– 객체지향 프로그램에서는 객체의 구성 및 객체간의 통신을 정의하는 것이

중요함 .

객체지향의 기본 키워드- 객체 (Object) : 실세계에 존재하는 모든 사물- 클래스 (Class) : 객체를 프로그램으로 표현할 수 있도록 만든 언어적 도구- 인스턴스 (Instance) : 프로그램에서 클래스를 통해 만든 실제의 실행 객체

클래스의 디자인의 중요한 문제– 어느 정도 레벨까지를 클래스로 구현해야 하는가 ?– 패턴 (Pattern) 의 적용을 고려

Page 10: chapter  01. C++  언어

한빛미디어㈜ - 10 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

객체지향 디자인 1

객체지향 설계의 고려사항– 객체의 정의 및 객체간의 통신에 대한 정의– 캡슐화 , 추상화 , 상속 및 다형성 등의 핵심 개념의 적용

캡슐화 (Encapsulation)- 데이터와 함수 등 객체와 관련된 것을 하나로 묶는 것 .- 정보 은닉 (Information Hiding) 과 함께 연관 지어 사용되는 개념- 외부에서 알아야 할 필요가 없는 데이터와 연산을 외부에서 보이지 않게 숨겨

자세한 실행 흐름을 드러나지 않게 함 .

추상화 (Abstraction)- 인터페이스 (Interface) 와 구현 (Implementation) 을 분리하는 것 .- 객체가 가진 특성 중 필수 속성만으로 객체를 묘사하고 유사성을 표현하며 ,

세부적인 상세 사항은 각 객체에 따라 다르게 구현되도록 함 .- C++ 언어는 가상 함수를 통한 클래스의 상속을 통하여 추상화를 제공 함 .- 기능 추상화 와 자료 추상화 가 있음 .

Page 11: chapter  01. C++  언어

한빛미디어㈜ - 11 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

객체지향 디자인 2

상속 (Inheritance)- 기존에 정의된 클래스를 이용하여 새로운 클래스를 정의할 수 있도록 함 .- 클래스에 상 , 하 관계를 맺을 수 있도록 하고 하위 클래스는 상위 클래스에서

정의한 모든 내용을 수정 없이 사용 가능하도록 정의함 .- 상위 클래스 (Super Class), 기본 클래스 (Base Class), 부모 클래스

(Parent Class)- 하위 클래스 (Sub Class), 유도 클래스 (Derive Class), 자식 클래스

(Child Class)- 다중 상속 (Multiple Inheritance): 두 개 이상의 부모 클래스로부터

상속받는 것으로 지정한 부모 클래스의 속성을 모두 물려받음 .

다형성 (Polymorphism)- 서로 다른 타입에 대해 동일한 방식으로 접근할 수 있도록 하나의 인터페이스를

제공하는 것 .- C++ 언어에서는 가상 함수 (6 장 ), 템플릿 (8 장 ), 오버로딩 (7 장 ) 등의

방법을 이용해서 다형성을 제공 함 .

Page 12: chapter  01. C++  언어

한빛미디어㈜ - 12 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

03. C++ 프로그램의 구조

C++ 프로그램은 하나 이상의 헤더 파일과 소스파일로 구성됨 .- 헤더파일 : 해당 클래스의 선언과 적용될 수 있는 데이터 , 상수

정의등으로 구성되는 확장명이 .h, .hpp 인 파일- 소스파일 : 구체적인 실행 코드가 담기는 파일로 .cpp, .cc, .cxx등의

확장명을 가지는 파일로 구현파일이라고도 함 .

Hello World 프로그램01 // First C++ program – print Hello02 #include <iostream>03 using namespace std;04 int main()05 {06 cout << "Hello, world!\n"; /* hello world 문자열을 화면에 출력함 . */07 }

Page 13: chapter  01. C++  언어

한빛미디어㈜ - 13 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

Hello World 프로그램의 구조

주석문 (1행 ) – 프로그램의 주요 코드를 위한 설명을 위해 사용됨 ./* … */ //

전처리 명령 (2행 ) – 실제의 번역에 앞서서 번역기에 대한 특별한 기능을 지시하기 위한 문장

using 명령 (3행 ) – 프로그램에서 사용하는 네임스페이스를 지정함 .

main 함수 (4행 ) – 프로그램의 실제 수행시에 운영체제에 의해서 자동으로 수행되는 함수

실행블록 (5~7행 ) – 실제 수행을 위한 문장이 포함되어 있는 블록

Page 14: chapter  01. C++  언어

한빛미디어㈜ - 14 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

C++ 프로그램 : 스택 헤더파일

스택 프로그램의 헤더파일 (stack.h)class my_stack // 클래스 my_stack 의 선언{

enum { Max_Data = 100 };public: my_stack ();

~ my_stack ();void push( int );int pop();bool empty();bool full();

private: size_t top;

int buffer[ Max_Data ];};

Page 15: chapter  01. C++  언어

한빛미디어㈜ - 15 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

C++ 프로그램 : 스택 구현파일스택 프로그램의 구현파일 (stack.cpp)#include “stack.h”

my_stack:: my_stack (){ top = 0;}my_stack::~ my_stack (){

top = 0;}void my_stack::push( int item ){

if( !full() ) buffer[ Top ++ ] = item;}

int my_stack::pop(){

if( !empty() ) top --;}bool my_stack::empty(){

return (top == 0);}bool my_stack::full(){

return ( top == Max_Data-1 );}

Page 16: chapter  01. C++  언어

한빛미디어㈜ - 16 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

외부에서의 클래스 이용 : 스택

클래스 단위로 작성된 헤더와 구현 파일의 이용 (main.cpp)#include <iostream>#include “stack.h”using namespace std;int main(){my_stack stack;stack.push( 5 );stack.push( 2 );

cout << stack.pop() << endl;cout << stack.pop() << endl;

}

Page 17: chapter  01. C++  언어

한빛미디어㈜ - 17 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

C 언어와 C++ 언어의 혼합 프로그래밍

C++ 언어에서는 C 언어로 작성된 프로그램을 별도의 수정 없이 사용할 수 있도록 언어적으로 규정 .

extern “C” 를 이용하여 C프로그램에서 작성된 인스턴스나 함수를 C++ 프로그램에서 사용할 수 있음 .

c.hextern "C" void print( int i ) ;

c.c#include <stdio.h>void print( int i ) {

printf( "%d is printed.\n", i );

}

cpp.cpp#include "c.h"int main( ){

print(1);}

Page 18: chapter  01. C++  언어

한빛미디어㈜ - 18 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

04. C++ 프로그램의 개발 환경

비주얼 C++– 윈도우 환경에서 널리 사용되는 C++ 프로그램의 통합개발환경 (IDE, Integr

ated Development Environment)– 하나의 개발 환경 내에서 원시코드의 편집에서 컴파일 , 링크 및 실행의 전

과정을 수행할 수 있도록 에디터 , 컴파일러 , 링커 및 디버거가 모두 제공이 됨 .

– .Net 프레임워크에서 비주얼 C++ 의 기능을 통합하여 지원되고 있음 .

g++– 유닉스나 리눅스 환경에서 C++ 프로그램의 개발을 지원하는 기본 컴파일러

– C컴파일러인 gcc 와 마찬가지로 자유 소프트웨어 재단 (FSF, Free Software Foundation) 과 GNU(Gnu is not Unix) 에서 공급하는 무료 컴파일러

– 기본적으로 통합개발환경을 지원하지는 않으며 , vi 와 같은 별도의 범용에디터를 사용해야 함 .

Page 19: chapter  01. C++  언어

한빛미디어㈜ - 19 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 설치 1

1. 소개화면

2. 라이센스

Page 20: chapter  01. C++  언어

한빛미디어㈜ - 20 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 설치 2

3. 제품 ID 및 사용자 정보 입력

4. 설치 옵션

Page 21: chapter  01. C++  언어

한빛미디어㈜ - 21 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 설치 3

5. 공통파일 설치 폴더 선택

6. 설치 안내화면 1

Page 22: chapter  01. C++  언어

한빛미디어㈜ - 22 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 설치 4

7. 설치 안내 화면 2

8. 설치 프로그램 선택

Page 23: chapter  01. C++  언어

한빛미디어㈜ - 23 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 설치 5

9. 설치 환경 변수

10. 설치 진행

Page 24: chapter  01. C++  언어

한빛미디어㈜ - 24 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 설치 6

11. 설치 완료

Page 25: chapter  01. C++  언어

한빛미디어㈜ - 25 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 의 실행

1. 비주얼 C++ 의 실행

2. 비주얼 C++ 초기화면

Page 26: chapter  01. C++  언어

한빛미디어㈜ - 26 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 을 이용한 프로그램 개발 1

1. 새 프로젝트의 생성단계 1

2. 새 프로젝트의 생성단계 2

Page 27: chapter  01. C++  언어

한빛미디어㈜ - 27 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 을 이용한 프로그램 개발 2

3. 신규 파일 추가

4. 프로그램의 편집

Page 28: chapter  01. C++  언어

한빛미디어㈜ - 28 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

비주얼 C++ 을 이용한 프로그램 개발 3

5. 실행 파일의 생성

6. 프로그램 실행

Page 29: chapter  01. C++  언어

한빛미디어㈜ - 29 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

g++ 의 사용방법

g++ 의 도움 말 보기$man g++

g++ 의 주요 옵션– 무 옵션 : 컴파일 , 링크를 수행하여 a.out 이라는 이름으로 실행파일을

생성함 .– -o : 생성되는 실행 파일의 이름을 지정– -c : 컴파일 과정만을 수행– -ldirPath : dirPath 를 경로에 추가함– -LdirPath : dirPath 를 라이브러리 경로에 추가함 .– -Wall : 컴파일 과정에서 발생되는 모든 에러 , 경고 메시지를 출력함 .– -ansi : ANSI 표준 C/C++ 형태로 컴파일함– -pedantic : 모든 경고 메시지를 출력하고 , 컴파일러 확장기능을 사용하지 않음

Page 30: chapter  01. C++  언어

한빛미디어㈜ - 30 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

vi 의 기본 모드 및 실행

vi 의 모드명령 모드 : 명령어를 입력할 수 있는 상태입력 모드 : 텍스트를 수정할 수 있는 상태Ex 모드 : 추가적인 에디터 명령어를 입력 받는 상태

vi 의 실행과 종료$vi:q!

vi 의 종료 명령q: vi 종료q!: 입력한 내용을 무시하고 , vi 를 종료함wq: 현재 입력한 내용을 저장하고 종료함

Page 31: chapter  01. C++  언어

한빛미디어㈜ - 31 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

vi 의 명령 1

vi 의 입력명령입력명령 의미

a 커서 위치의 다음 칸부터 내용을 입력한다 (append).

A 커서가 있는 줄의 끝에 내용을 입력한다 .

i 커서의 현재 위치에서 내용을 입력한다 (insert).

I 커서가 있는 줄의 맨 앞에서 내용을 입력한다 .

o 커서가 있는 줄의 바로 아래에 새로운 줄을 만들고 입력한다 .

O 커서가 있는 줄의 바로 위에 새로운 줄을 만들고 입력한다 .

vi 의 종료 명령종료 명령 의미

q VI 종료

q! 입력한 내용을 무시하고 , VI 를 종료한다 .

wq 현재 입력한 내용을 저장하고 , VI 를 종료한다 .

ZZ 명령 모드에서 입력하며 wq와 같은 의미다 .

Page 32: chapter  01. C++  언어

한빛미디어㈜ - 32 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

vi 의 명령 2

vi 의 커서 이동 명령명령 기능 명령 기능h 한칸 왼쪽으로 이동 l 한칸 오른쪽으로 이동

j 한줄 아래로 이동 k 한줄 위로 이동

w 다음 단어의 첫 글자로 이동 W 다음 단어의 첫 글자로 이동b 이전 단어의 첫 글자로 이동 B 이전 단어의 첫 글자로 이동e 단어의 마지막 글자로 이동 E 단어의 마지막 글자로 이동^ 줄의 첫 글자로 이동 $ 줄의 마지막 글자로 이동0 줄의 처음으로 이동 <CR> 다음 줄의 첫 글자로 이동+ 다음 줄의 첫 글자로 이동 - 윗 줄의 첫 글자로 이동( 이전 문장의 첫 글자로 이동 ) 다음 문장의 첫 글자로 이동{ 이전 문단으로 이동 } 다음 문단으로 이동

Page 33: chapter  01. C++  언어

한빛미디어㈜ - 33 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

vi 의 명령 3

vi 의 수정 명령명령 기능

r 커서의 위치에 있는 한 개의 글자를 교체 (replace)

R 커서 위치에서 ESC 키를 누를 때까지 다른 글자로 교체S, cl 커서 위치의 글자를 여러 글자로 교체ch 커서 바로 앞의 글자를 여러 글자로 교체cw 커서 위치의 한 단어를 교체c0 커서 위치부터 줄의 처음까지를 교체

C, c$ 커서 위치에서 줄의 끝까지를 교체cc 커서가 있는 줄을 교체cj 커서가 있는 줄과 그 다음 줄을 교체ck 커서가 있는 줄과 그 앞줄을 교체

Page 34: chapter  01. C++  언어

한빛미디어㈜ - 34 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

vi 의 명령 4

vi 의 삭제 명령명령 기능 명령 기능

x, dl 커서 위치의 글자 삭제 X, dh 커서 바로 앞의 글자를 삭제

dw 한 단어를 삭제 d0 커서 위치에서 줄의 처음까지 삭제

D, d$ 커서 위치부터 줄의 끝까지 삭제 dd 커서가 있는 줄을 삭제

dj 커서가 있는 줄과 다음줄을 삭제 dk 커서가 있는 줄과 앞 줄을 삭제

vi 의 편집 명령명령 기능 명령 기능

yw 커서 위치부터 단어의 끝까지 복사 yj 커서가 있는 줄과 다음줄을 복사

y0 커서 위치부터 줄의 처음까지 복사 yk 커서가 있는 줄과 앞줄을 복사

y$ 커서 위치부터 줄의 끝까지 복사 p 커서의 다음위치에 붙여넣기

yy 커서가 있는 줄을 복사 P 커서 위치에 붙여넣기

Page 35: chapter  01. C++  언어

한빛미디어㈜ - 35 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

vi 의 명령 5vi 의 작업취소 명령

명령 기능

u 작업취소 (undo), 계속해서 누르면 한 단계씩 이전의 상태로 되돌아간다 .

U 커서가 위치한 줄에서 수행된 모든 작업을 취소한다 .

Ctrl + r 작업을 재실행한다 (redo).

vi 의 편집 명령명령 기능

. 바로 전에 수행했던 명령을 반복 수행한다 .

J Join, 현재 커서가 위치한 줄과 아래 줄을 하나의 줄로 연결한다 .

~ 대문자를 소문자로 , 소문자를 대문자로 바꾼다 .

Ctrl + g 파일명 , 편집하고 있는 문서의 총 줄 수 , 커서의 위치 등의 정보를 표시한다 .

[ , ] C 언어의 프로그래밍을 위해서 사용할 경우 , 함수 단위로 커서를 이동한다 .

:n 입력한 줄 (n) 로 커서를 이동한다 .

/[pattern] 현재의 문서에서 입력한 [pattern] 을 가진 문자열로 커서를 이동한다 .

n 다음에 나타나는 [pattern] 의 위치로 커서를 이동한다 .

N n 과 반대방향으로 커서를 이동한다 .

:![command] VI 를 종료하지 않은 상태에서 명령어를 실행한다 .

Page 36: chapter  01. C++  언어

한빛미디어㈜ - 36 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

g++ 과 vi 를 이용한 프로그램 개발 1

vi 데이터를 이용하여 코드를 입력한다 .$vi hellosample.cc

Page 37: chapter  01. C++  언어

한빛미디어㈜ - 37 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

g++ 과 vi 를 이용한 프로그램 개발 2

g++ 을 이용하여 실행파일을 생성한다 .$g++ -o hellosample hellosample.cc

Page 38: chapter  01. C++  언어

한빛미디어㈜ - 38 -

IT COOKBOOKIT COOKBOOK

ehanbit.net

C++ 프로그래밍 입문

g++ 과 vi 를 이용한 프로그램 개발 3

프로그램의 실행$./hellosample