C언어의 역사, C언어의 특징, C언어의 프로그래밍기법, C언어의 시작하기, C++의 개선사항과 대화형입력, C++의 클래스와 반복문, C++의 객체생성와 연산자중복, C++의 확장함수와 다형성 분석(C언어, C++)
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

C언어의 역사, C언어의 특징, C언어의 프로그래밍기법, C언어의 시작하기, C++의 개선사항과 대화형입력, C++의 클래스와 반복문, C++의 객체생성와 연산자중복, C++의 확장함수와 다형성 분석(C언어, C++)에 대한 보고서 자료입니다.

목차

Ⅰ. 개요

Ⅱ. C언어의 역사

Ⅲ. C언어의 특징

Ⅳ. C언어의 프로그래밍기법
1. 순차적 프로그래밍
2. 구조적 프로그래밍
3. 객체지향 프로그래밍(Object-Oriented Programming)

Ⅴ. C언어의 시작하기

Ⅵ. C++의 개선사항

Ⅶ. C++의 대화형입력
1. 할당문
1) 일반 형식(등호의 사용)
2) 다른 형식(연산자와 등호의 사용)
3) 누적
4) 카운팅
2. 수학적 라이브러리 함수
1) 사용법
2) 캐스트 연산자
3. cout과 cin객체
4. const 한정자
5. 일반 프로그램 오류

Ⅷ. C++의 클래스

Ⅸ. C++의 반복문
1. while 문
2. for 문
3. break 문과 continue 문
4. do 문

Ⅹ. C++의 객체생성

Ⅺ. C++의 연산자중복

Ⅻ. C++의 확장함수

ⅩⅢ. C++의 다형성

참고문헌

본문내용

호출직전) 생성자가 호출이 된다.
[3] 동적(dynamic)변수는 new명령에 의해 생성이 된다.
③ 생성자함수는 결과값이 리턴값을 명시해서는 안 된다. (void조차 불허)
④ 생성자는 다형성에 의해서 여러 개 존재할 수가 있다.
즉, 다음과 같은 생성자도 동시에 존재할 수 있다. 물론 이렇게 할 때는 다음과 같이 생성자의 프로토타입들을 밝혀주어야 한다. 즉, 생성자가 여러 개 있다면 프로토타입 또 한 일일이 다 밝혀주어야 한다.
class ACCESS {
public:
int x;
int y;
char c;
void put();
ACCESS(int,int,char); // 생성자 함수
ACCESS(int,char); // 역시 생성자 함수
ACCESS(); // 역시!
};
.
:
ACCESS A(10,8,\'S\');
ACCESS B(20,\'T\'); // 이런 식으로 사용가능
ACCESS C;
C라는 객체 생성시와 같이 생성자의 인수를 지정하지 않을 수도 있으며, 이 때는 객체의 선언시에 호출을 위한 괄호를 붙여서는 안된다. 즉,
ACCESS C(); ⒳
ACCESS C; ⒪
왜냐하면 컴파일러가 리턴값이 ACCESS인 함수 C를 선언하는 줄 알고 착각하기 때문이다.
- 만약에 생성자가 없더라도 초기화가 이루어지지 않았을 뿐이므로 에러는 발생하지 않는다. (구조체와 마찬가지~)
- 엉뚱한 데이터형으로 초기화시켜준다면 당연히 에러가 발생한다.
⑤ 생성자도 함수이므로 디폴트 인수의 지정이 가능하다. 디폴트값을 이용할 때도 역시 ACCESS C; 이런 형태로 써야한다.
⑥ 생성자 함수의 접근제어명시자는 반드시 public형여야 한다. 외부에서 참조가 가능해야 하기 때문이다.
. C++의 연산자중복
(1) C++ 언어에서는 사용자가 정의한 객체에 대하여 연산자를 중복 정의함으로써 원래의 연산자에 새로운 의미를 부여할 수가 있다. 예를 들어 기존의 C 언어에서 정수형 및 실수형 자료에만 적용되는 + 연산자를 복소수의 덧셈을 정의하는 연산자로 중복 정의하면 두 복소수를 나타내는 복소수 덧셈은 자연스럽게 a + b로 사용할 수 가 있다.
(2) 중복 가능한 연산자의 종류
+ - * / % ^ & ~ | ! = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++ -- [] () , ->
(3) 조건 연산자 ?: 와 구조체 참조 연산자 . 또한 :: 연산자 등은 중복 정의될 수 없다.
(4) 연산자가 취하는 오퍼랜드의 수는 변경할 수가 없다. 예를 들어 이항 연산자인 +는 항상 두개의 오퍼랜드를 적용하여야 한다.
(5) 연산자 중복시 우선순위는 원래 연산자의 우선순위가 그대로 지켜진다.
(6) 연산자 중복은 연산자 함수에 의해서 이루어진다. 연산자 함수는 operator 키워드를 사용하여 다음과 형식으로 기술한다.
반환형 operator 연산자(argument list);
(예)
class Complex{
:
Complex operator +(Complex x); // + 연산자 중복
:
};
Complex a, b, c;
:
/* 중복된 연산자를 사용한 복소수 덧셈 연산 표현
c = a.operator +(b)와 같다. */
c = a + b;
(7) 연산자 함수는 default argument 값을 선언할 수가 없다.
. C++의 확장함수
(1) 일반 함수를 호출하면 호출한 함수로 분기하여 함수를 실행한 후에 복귀하지만, 확장 함수를 수행하면 호출한 함수의 내용을 복사하여 실행한다. 따라서 일반 함수보다 프로그램의 실행속도가 빠른 장점이 있으나 프로그램의 코드 분량이 많아지는 단점이 있다.
(2) 일반적으로 확장 함수는 코드 길이가 짧은 경우에 주로 사용한다.
(3) 확장 함수는 C 언어에서의 매크로 치환과 유사한 기능을 갖고 있다. 그러나 매크로 치환은 argument 전달시 부작용(side effect)이 발생하나 확장 함수는 발생하지 않는다.
(4) 확장 함수는 함수 정의 앞에 inline 이라는 키워드를 붙인다.
ⅩⅢ. C++의 다형성
다형성이란 각각의 상항에 따라 같은 메시지에 대해 다른 반응을 보이는 것을 말한다. 예를 들어 다음의 상황이 어떤 음식점에서 벌어지고 있다고 가능하면,
- 주인: ‘일 하세요’
- 주방장-> 음식을 만든다.
- 배달원-> 배달을 한다.
- 카운터-> 음식값을 받는다.
따라서 주인의 일하세요라는 말에 각자의 상황에 맞는 일을 한다. 이것을 C++에서는 virtual을 사용한 가상 함수로 구현할 수 있다.
가상 함수는 컴파일할 때가 아니라 실행 할 때의 상항에 따라 다른 함수를 호출하는데 이를 ‘동적 바인딩’이라 한다. 실제로 가상함수는 거의 상속과 함께 쓰이는데 가상 함수를 만들기 위해선 선조 클래스의 동적 바인딩을 할 부분앞에 virtual을 붙여 주면된다. 앞에 예에서 WhereAmI 가 가상 함수이다. 다만 가상함수는 몇 가지 제약이 있다.
⑴같은 인자 리스트를 갖고 있어야 하고 인라인 함수일 수 없다.
⑵정적 함수이면 안된다.
⑶클래스 내부의 멤버 함수가 아닌 외부의 함수에는 적용할 수 없다.
또한 추상적인 가상 함수라는 것이 있는데, 이것은 선조 클래스에서 함수를 선언만 해놓고 상속된 클래스에서 구현해야 되는 가상함수를 추상적인 가상함수라 한다. 즉 선조에서는 뼈대만 갖춰 놓고 실제적인 구현은 상속된 클래스에 맡기는 것이다. 만약 WhereAmI를 추상적인 가상함수로 선언한다면 다음과 같다.
void WhereAmI() = 0;
여기서 ‘=0’이라고 표현하는 것은 추상적인 가상함수임을 나타내는 것이다.
참고문헌
* 강환수·강환일, C로 배우는 프로그래밍 기초, 학술정보, pp.89~91
* 김태석, 프로그램 언어론, 홍릉과학출판사, 1999
* 원유현, 프로그래밍언어, 정익사, 1997
* 서보원, 요리조리 맛있는 C언어, 혜지원, 2006
* C프로그래밍 이론과 실습, 남두도서
* Kawai Satoru, 프로그램 작성법(Pascal), 홍릉과학 출판사, 1998
* Robert W.Sebesta, 유원희·하상호 역, 프로그래밍 언어론, 홍릉과학출판사, 2004
  • 가격6,500
  • 페이지수15페이지
  • 등록일2009.09.18
  • 저작시기2021.3
  • 파일형식한글(hwp)
  • 자료번호#553126
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니