C/ C++ 프로그래밍 요약 레포트
본 자료는 7페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
해당 자료는 7페이지 까지만 미리보기를 제공합니다.
7페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

C/ C++ 프로그래밍 요약 레포트에 대한 보고서 자료입니다.

목차

- C -
1.자료형
2.연산자
3.제어문
4.함수
5.배열
6.포인터
7.구조체
8.클래스
- C++ -
9.객체
10.오버로딩
11.오버라이딩
12.가상함수
13.추상클래스
14.템플릿

본문내용

인자를 기술하지 않는다. 피연산자로 주어진 객체의 포인터를 내부 포인터인 this가 저장하기 때문이다.
(2)- 연산자를 이용한 단한 연산자 오버로딩 : “-”연산자는 두가지 용도로 사용된다. 첫 번째는 피연산자에서 두 번째 피연산자를 빼는 용도로 이럴 경우 피연산자가 두 개 필요하므로 이항 연산자로 구현해야 한다. 두 번째는 피연산자 하나에 적용하여 음수 기호 역할을 하는 것이다. 즉, 피연산자의 부호를 바꾸는 역할이다.
오버라이딩
함수의 오버라이딩(Overriding Funtion)
함수의 오버로딩(재정의)와 오버라이딩(재생)의 차이점
·함수의 재정의(Overloading)
비슷한 일을 하는 함수들을 동일한 이름으로 정의하는 것으로 함수의 모호성이 발생하지 않도록 함수를 정의할 때 전달인자의 자료형이나 또는 전달인자의 개수가 달라져야 한다.
·함수의 재생(Overriding)
파생 클래스에서 기반 클래스의 함수에 존재하는 함수를 다시 정의하는 것으로 파생 클래스에서 재생하는 함수는 기반 클래스의 정의된 함수와 전달인수의 자료형과 전달인자의 개수는 물론 함수의 리턴값도 같아야 한다
파생된 클래스가 기반 클래스의 멤버 함수와 같은 반환형 및 원형부(sifnature)를 가지는 함수를 만들면서 새롭게 구현될 때 이를 그 함수를 재생한다고 한다.
가상함수(Virtual Function)
함수가 호출될 때 어떠한 함수를 호출할지를 결정하는 것을 바인딩(biding)이라고 한다. c언에서는 함수의 이름에 의해 호출될 함수를 결정하며 c++언어에서는 함수의 이름뿐만 아니라 인수의 개수와 데이터 타입을 보고 결정한다. 바인딩은 다음 두가지로 나뉜다.
·정적 바인딩(static binding)
컴파일러될 때 함수를 결정한다. 컴파일시 함수 이름과 인수에 의해 호출될 함수의 번지를 구해낸다.
·동적 바인딩(dynamin binding)
프로그램이 실행될 때 호출될 함수가 결정된다.
(1)가상함수 재정의 : 가상함수는 원칙적으로 파생(서브) 클래스에서 재정의할 수 있다. 기반(부모) 클래스에서 정의한 가상 함수를 그대로 상속받고자 할 경우는 가상 함수를 재정의 하지 않아도 된다. 그러나 재정의 할 때는 기반 클래스의 가상 함수와 함수의 형이 같아야 한다. 여기서 함수의 형이랑 인수의 개수와 인수의 데이터 타입을 말한다.
기반 클래스에서 가상 함수를 선언하고 파생 클래스에서 함수를 다중 정의하는 것은 실행시간에 있어서 다음과 같은 이유로 인해 함수의 다형화에 대한 특별한 경우에 속한다.
· 첫째로 일반적인 함수의 다중화(overloading)의 경우에는 클래스의 반환 값과 멤버 값과 멤버 및 매개변수의 형이 다를 수 있으나 가상 함수를 이용하는 경우에는 매개변수의 자료형이 모두 일치해야 하기 때문이다.
· 둘째로 가상 함수는 정의된 클래스 안에서 friend 함수가 아니고 멤버 함수이여야 하나 다른 클래스의 friend 함수가 될수 있다. 따라서 클래스의 소멸자 함수는 가상 함수가 될 수 있으나 생성자 함수는 가상 함수가 될 수 없다.
(2)가상함수의 동작원리 : 두가지 바인딩(동적 바인딩, 정적바인딩)중에서 가상함수는 동적바인딩을 사용한다고 했다. 동적 바인딩을 하기 위해서는 virtual라는 키워드를 동적 바인딩을 하고자 하는 함수가 선언되어 있는 기반 클래스에 가서 함수의 선언 앞에 덧붙인다.
동적 바인딩은 실행할 때 멤버 함수를 호출 함으로써 보다 정확한 멤버 함수를 결정해 주는 장점이 있는데고 디폴트로 정적 바인딩을 하는 이유는 프로그램 실행시간에 멤버 함수를 결절하려면 기반 클래스의 포인터가 객체의 종류를 기억하는 방법이 필요함으로 처리에 부담이 생기기 때문이다.
virtual 리턴형 함수명() = 0;
(3)순수 가상 함수와 추상 클래스 : 부모 클래스에서 선언되는 가상 함수가 그 클래스에 관련해서 어떤 절차문도 포함하지 않은 함수
추상클래스
추상클래스와 다형성
추상클래스(Abstract class)는 완전 가상함수를 하나 이상으로 포함한 클래스로, 객체를 생성할 수 없다. 추상클래스는 상속을 위한 기반 클래스로 사용된다. 완전 가상함수가 있는 기반 클래스의 상속을 받는 파생 클래스로 객체를 생성하려면 가상함수를 오버라이딩해서 몸체를 구현해야 한다. 어떻게 동작하는지 정의를 해야 객체를 생성할 수 있기 때문이다.
완전 가상함수를 멤버로 갖는 추상 클래스를 설계하는 방법은 그 함수를 완전 가상 함수로 선언한 추상 클래스를 설계한다. 그런 후에 관련 클래스들이 그 추상 클래스를 부모로 갖도록 설계한다. 그러면 파생 클래스는 완전 가상함수를 반드시 구현해야 한다는 강제성을 부여받게 된다.
템플릿(template)
템플릿은 프로그래밍을 좀더 편리하게 도와주는 기능을 하는 것으로 템플릿의 이해는 C++프로그래밍에 좀더 많은 편리함을 제공한다.
프로그램을 작성할 때 자료형만 다르고 알고리즘이 같으면 함수의 오버로딩을 사용하여 함수의 이름을 동일하게 주어 정의하였다. 객체 지향 개념에서 코드의 재활용 측면에서 동일한 알고리즘을 여러 번 반복하여 정의하는 것은 좋은 방법이 아니다. 따라서 상속이라는 것이 등장했듯이 템플릿 개념도 소스 코드의 크기를 줄이기 위한 것이다.
template <인수 리스트>
함수정의
(1)함수 템플릿 : C++언어는 다형성(polymorphism)을 지원하여 함수 이름이 갖더라고 인수의 데이터 타입이나 개수가 다르면 같은 이름의 함수를 여러 개 정의할 수 있다.
template <인수 리스트> class 클래스명{
}
(2)클래스 템플릿 : 함수가 데이터형만 다르고 나머지가 비슷한 형태로 중복되듯이 클래스도 일부만 다르고 대부분이 비슷한 형태로 중복될수 있다.
template-class <인수 리스트> object;
함수템플릿과 마찬가지로 클래스 선언 부분에 템플릿의 인수 리스트가 사용된다는 것을 제외하고는 일반적인 클래스 선언과 동일하다. 이처럼 템플릿을 사용하여 선언된 클래스를 템플릿 클래스라고 하며 템플릿 클래스로 객체를 정의하는 방법은 다음과 같다.
인수 리스트에 들어갈 수 있는 것은 주로 자료형이지만 상수로 구성된 수식이나 함수등도 가능하다.
  • 가격3,000
  • 페이지수21페이지
  • 등록일2009.10.29
  • 저작시기2009.10
  • 파일형식한글(hwp)
  • 자료번호#558653
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니