2008. 9. 19. 02:26ㆍStudy/Programming
C++
C++는 AT&T 벨 연구소의 비야네 스트롭스트룹이 1983년 발표하여 발전한 프로그래밍 언어이다. C언어의 확장판으로 만들어진 객체지향형 프로그래밍 언어이며 대규모 응용프로그램들을 만드는데 있어 최적의 객체지향 프로그래밍 언어로 간주되고 있다. C 언어의 문법을 대부분 사용할 수 있으며, 객체지향성이 더해진 C언어의 확장형이라고 생각할 수도 있다.
C가 전세계적으로 가장 많은 사람들이 사용하고 있는 프로그램 전문 언어 중의 하나이기는 하지만 이 언어 역시 한계에 부딪히게 되었다. 이에 따라 고도로 복잡한 프로그램을 관리하기 위하여 C++가 탄생하게 되었다. C++는 처음 소개된 이후로 1985년과 1989년, 그리고 C++에 ANSI표준을 적용하기 시작한 시기 등 3번에 거쳐 개정되었다. 1994년에 최초로 표준안이 발표되었으며 ANSI C++위원회는 사실상 스트루스트럽(C개발자)이 설정한 모든 사양을 그대로 수용하고 그 외의 약간의 사양을 덧붙였다. 그렇기 때문에 C++은 C프로그래머가 쉽게 C++을 사용할 수 있다는 관련성에서 큰 장점이 있다.
C의 대부분의 특징을 포함하고 있으므로 시스템 프로그래밍에 적합할 뿐만 아니라 클래스, 연산자 중복, 가상 함수 등과 같은 특징을 갖추고 있어 객체 지향 프로그래밍에 적합하다. 또한 C와 일치하는 부분이 C++를 널리 대정적인 언어가 되는데 도움을 주었다.
흔히 객체지향적 언어라고 불리는 C++은 새로운 방식의 프로그래밍 접근 방법이다. 프로그래밍이 탄생한 이후로 그 방식은 많은 변화를 겪었는데, 프로그래밍이 현격하게 다른 변혁을 겪을 때마다 새로운 접근 방식이 나타나 프로그래머가 그 전 단계보다 훨씬 더 복잡해진 프로그램을 처리할 수 있도록 도왔다. 예전의 구조적인 프로그래밍은 복잡한 프로그램 작성 시 프로그램의 규모가 일정 한계를 넘으면 가끔씩 실패하는 경우를 제외하고 상당히 우수한 기능을 해왔지만 그 보다 좀 더 복잡한 프로그램을 쓸 수 있는 새로운 프로그래밍 방식이 필요했다. 그래서 탄생한 것이 객체 지향 프로그래밍이다. 이는 구조적인 프로그래밍에서 사용되는 개념들을 최대한 활용하여 종전과는 다른 방식으로 이러한 개념을 엮어내는 역할을 한다.
C++ 소스코드의 예
#include <iostream.h> #include <fstream.h>
void main () {
char buffer[50]; ifstream fin; fin.open("a.txt"); ofstream fout; fout.open("b.txt");
if (! fin) cout << "파일이 열리지 않았습니다";
while (fin) { fin.getline (buffer,50); fout << buffer << endl; //buffer를 b.txt에 출력 //cout << buffer <<endl; } cout << "완료" << endl; } |