1 / 126

고급객체지향프로그래밍 객체 지향으로 접근하는 C++ 프로그래밍

고급객체지향프로그래밍 객체 지향으로 접근하는 C++ 프로그래밍. 경희대학교 정연모. 1. C++ 언어 개요. 경희대학교 이대호. C++ 언어의 특징 (1). C 언어 1970 년대 개발 이식성 (portability) 과 유연성 (flexibility) 절차 지향 언어 (procedure oriented language) C++ 언어 객체 지향 언어 (object oriented language) 클래스 (class) 를 통해서 수행

fai
Télécharger la présentation

고급객체지향프로그래밍 객체 지향으로 접근하는 C++ 프로그래밍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 고급객체지향프로그래밍객체 지향으로 접근하는 C++ 프로그래밍 경희대학교 정연모

  2. 1. C++ 언어 개요 경희대학교 이대호

  3. C++ 언어의 특징(1) • C 언어 • 1970년대 개발 • 이식성(portability)과 유연성(flexibility) • 절차 지향 언어(procedure oriented language) • C++ 언어 • 객체 지향 언어(object oriented language) • 클래스(class)를 통해서 수행 • 1989년 이후 ANSI와 ISO에 의해 C와 C++ 표준화

  4. C++ 언어의 특징(2) • 객체 지행 프로그래밍 • 캡슐화(encapsulation) • 자료와 자료를 처리하는 함수 등을 묶어서, 사용자가 내부의 구조를 알지 않고도 사용법이나 인터페이스만을 알고 사용할 수 있도록 하는 것 • 정보 은닉(information hiding) • 상속(inheritance) • 기존에 작성한 클래스를 이용하여 새로운 형식의 클래스를 파생하는 것 • 다형성(polymorphism) • 같은 이름으로 상황에 따라서 다른 방법으로 동작하는 것 • 동적 바인딩(dynamic binding)으로 실행 시간에 객체의 특성에 따라서 다른 동작을 처리

  5. 프로그램 개발 환경(1) • 명령행 컴파일러(command line compiler) • 사용자의 명령어에 의해 실행 코드로 변환 • 통합 개발 환경(IDE, integrated development environment) • 편집기, 컴파일러, 링커와 디버거(debugger) 등을 모두 포함한 프로그램 • Visual Studio 6.0, Visual Studio 2005 등 • Visual Studio • 최신의 서비스 팩(service pack)과 MSDN 라이브러리(Microsoft Developer Network Library)를 설치할 것을 권장

  6. 프로그램 개발 환경(2)

  7. 프로그램 개발 환경(3) • Visual Studio 6.0으로 프로그램 작성 • 프로젝트(project) 구성 • 한 개의 프로그램에서 여러 개의 원시 파일들과 기타 관련 자원들을 관리 • 프로젝트 생성 • [File]-[New]

  8. 프로그램 개발 환경(4)

  9. 프로그램 개발 환경(5) • 프로젝트에 원시 파일 추가 • [File]-[New] • 컴파일과 실행 • [Build]-[Build xxx.exe] (xxx는 프로젝트 이름)

  10. 프로그램 개발 환경(6) • Visual Studio 2005으로 프로그램 작성 • 프로젝트는 솔루션(solution)으로 관리 • 프로젝트 생성 • [파일]-[새로 만들기]-[프로젝트]

  11. 프로그램 개발 환경(7) • 프로젝트에 원시 파일 추가 • [프로젝트]-[새 항목 추가] • 컴파일과 실행 • [디버그]-[디버깅하지 않고 시작]

  12. 프로그램 개발 환경(8) • 빌드(build) • 컴파일  링킹  실행 파일 생성 • 컴파일 과정에서 오류(error)와 경고(warning)를 출력, 만일 오류가 있으면 링킹할 수 없음 • 링킹 과정에서 오류와 경고를 출력, 만일 오류가 있으면 실행 파일을 생성할 수 없음 • 컴파일은 위에서 아래로 진행하므로 항상 상위에서 발생한 오류를 먼저 수정 • 오류와 경고는 반드시 읽어보고 수정하는 습관이 필요

  13. C++ 프로그램의 일반적인 형식 주석(comment) 컴파일 되지 않는 설명 전처리기(preprocessor) #으로 시작 컴파일하기 전에 먼저 동작 전역 선언(global declaration) 프로그램의 모든 영역에서 사용 가능한 것을 선언 main 함수 반드시 한 개 필요한 함수 사용자 정의 함수(user-defined function) 사용자가 작성한 함수 C++ 프로그램 구조(1)

  14. C++ 프로그램 구조(2) • main 함수 • 프로그램을 실행하면 자동으로 호출(call, 불려서 실행됨)되는 함수 • int main() • 반환(return, 함수가 종료하고 돌려줌)이 정수(int) • 함수 이름이 main • ( ) : 매개변수(parameter)가 없음 • {…} • 함수의 몸체(body), 함수의 동작을 작성 • return 0; • 함수가 종료되면 0을 반환

  15. C++ 프로그램 구조(3) • 아무런 처리도 하지 않는 프로그램 • 주석 • 블록 주석(block comment) • /*로 시작해서 */로 끝남 • 줄 주석(line comment) • //로 시작해서 작성 // 아무런 처리도 하지 않는 프로그램 int main() { return 0; }

  16. C++ 프로그램 구조(4) • #include 전처리기 • 전처리기: 컴파일하기 전에 동작 • include: 컴파일하기 전에 지정된 파일(헤더 파일)을 원시 코드에 포함

  17. C++ 프로그램 구조(5)

  18. C++ 프로그램 구조(6) • 식별어(identifier) • 사용자가 필요에 따라서 선언한 것으로 다른 것과 구분할 수 있는 이름 • 변수, 상수, 함수, 클래스, 구조체 등의 이름 • 식별어의 조건 • 영문자(A-Z, a-z), 숫자(0-9), 밑줄(_)로 구성 • 영문자는 대소문자를 구분 • 식별어의 첫 자는 영문자 또는 밑줄 • 예약어는 사용할 수 없음

  19. 자료형(1) • 상수(constant) • 수행되기 전에 자료의 값을 미리 정하여 수행 도중에 값이 변하지 않는 숫자나 문자(문자열) • 리터럴(literal) • 수식에서 표현된 숫자나 문자 그 자체 • 정의된 상수(defined constant) • #define로 지정 • 메모리 상수(memory constant) • 변수를 상수형으로 지정

  20. 자료형(2) • 정의된 상수 • 컴파일하기 전에 상수이름을 사용한 곳이 상수값으로 수정

  21. 자료형(3) • 변수(variable) • 프로그램 수행 도중에 값이 변할 수 있는 자료 • 변수를 위해 미리 정해 놓은 자료형은 변하지 않음 • 선언 시에 반드시 그 자료형을 지정 • C++의 자료형

  22. 자료형(4) • 변수의 선언(declaration) • 자료형의 종류와 지정어

  23. 자료형(5) • 메모리 상수 • 참조 변수

  24. 자료형(6) • 대입(assignment) • =: 대입 연산자(assignment operator)

  25. 자료형(7) • 연산과 자료형 변환 • 묵시적 형변환(implicit type conversion) • 명시적 형변환(explicit type conversion) • C 형식의 형변환

  26. 자료형(8) • C++의 형변환

  27. 자료형(9) • 표준 입/출력 스트림 • 표준 출력 스트림 • cout 객체와 삽입 연산자(insertion operator, <<)에 의해 수행

  28. 자료형(10) • 표준 입력 스트림 • cin 객체와 추출 연산자(extraction operator, >>)에 의해 수행

  29. 연산자(1) • 연산자의 종류와 기능 • 연산자(operator) • 피연산자에 대한 덧셈, 뺄셈 등의 연산을 표시하는 기호 • 피연산자(operand) • 연산이 수행되는 대상

  30. 연산자(2)

  31. 연산자(3) • 산술 연산자

  32. 연산자(4) • 증감 연산자 • 관계 연산자 • 동등 연산자

  33. 연산자(5) • 논리 연산자

  34. 연산자(6) • 대입 연산자

  35. 연산자(7) • 비트 연산자

  36. 연산자(8) • 조건 연산자 • 기타 연산자

  37. 제어문(1) • 문장과 제어문 • 문장(statement) • ;으로 구분된 명령어 코드 • 제어문(control statement) • 처리를 구분하거나 반복적인 수행 또는 분기 • 선택문(selection statement) • 반복문(repetition statement) • 분기문(branch statement) • 제어문에서 조건에 의해 수행되는 문장은 기본적으로 하나의 문장만일 여러 문장을 동시에 수행하는 경우에는 {}로 묶어 복합 문장(compound statement)으로 작성

  38. 제어문(2) • if문

  39. 제어문(3) • switch문

  40. 제어문(4)

  41. 제어문(5) • 선택문과 반복문

  42. 제어문(6) • while문 • for문 • do…while문

  43. 제어문(7) • break문 • 반복문이나 switch문을 강제로 벗어남 • continue문 • 아래의 반복되는 문장을 처리하지 않고 다시 반복을 수행하게 하는 분기문

  44. 제어문(8) • goto문 • 사용자가 지정한 레이블의 위치로 분기 • 레이블은 프로그램의 특정 위치를 지정한 식별어

  45. 함수(1) • 함수(function) • main 함수 • 표준 라이브러리 함수(standard library function) • 사용자 정의 함수(user-defined function) • 함수의 형식 • 인수(argument): 함수의 매개변수에 전달되는 값 • 매개변수(parameter): 인수를 받는 값 • 반환형: 함수가 종료될 때 전달되는 값의 자료형

  46. 함수(2) • 함수의 정의

  47. 함수(3) • 매개변수와 반환값이 없는 함수 • 매개변수가 없으므로 인수 없이 호출 • 반환값이 없으므로 함수 이름 앞에 void를 지정

  48. 함수(4) • 매개변수는 있으나 반환값이 없는 함수 • 매개변수를 가지고 있으므로 인수에 따라서 다른 동작을 처리 • 반환값으로 결과를 가져오지 못하므로 매개변수에 의한 단순한 처리(출력 등)를 수행하는 함수로 주로 사용

  49. 함수(5) • 매개변수는 없으나 반환값이 있는 함수 • 매개변수가 없으므로 함수에서 수행되는 처리는 동일 • 반환값으로 결과를 가져옴

  50. 함수(6) • 매개변수와 반환값이 있는 함수 • 일반적인 형식의 함수

More Related