C 언어 개열/C++

C++ 문법 특성과 표준 입출력

본클라쓰 2010. 8. 18. 08:14

 C++은 C언어를 기반으로 탄생했다. 따라서 C++은 C언어의 문법적 특성을 가지고 있다. 하지만 C++은 객체지향 언어로 C언어의 특성이 절차지향 언어와 차이점이 있다. C++은 차세대 객체지향 프로그래밍 언어인 Java나 C#과 절차지향 언어인 C의 중간의 언어적 특징을 가지고 있다. 따라서 C++로는 절차지향적인 프로그래밍과 객체지향적인 프로그래밍이 가능하다.

 절차적인 프로그래밍언어는 프로그램의 절차를 기준으로 프로그램을 작성하며 함수 수준의 프로그래밍을 지원한다. 하지만 객체지향 언어는 프로그램을 객체로 구분하고 객체를 표현하기 위한 프로그래밍 언어로 문법과 객체 간의 디자인에 초점이 맞춰져 있다. C++을 완벽한 객체지향 프로그래밍 언어가 아니라고 말하는 경우가 있는데, C++의 특성상 절차지향적, 객체지향적 프로그래밍이 가능하기 때문에 이런 문제가 발생하는 것이다. C++은 엄밀히 말해 객체지향 언어이다. 따라서 C++로 C 수준의 절차지향 프로그래밍을 하는 것은 지양되어야 한다.




표준 출력의 기본 형태

1. 헤더 파일을 include 하는 방법

#include <iostream.h>

int main() {

    cout<<"Hello world"<<endl;
    return 0;

}


 #include <iostream.h> 이란 뜻은 iostream.h 파일을 포함시킨다는 뜻이다. iostream.h 헤더 파일을 포함시킴으로써 cout(Common output) 를 사용할 수 있고, endl(end line) 을 사용할 수 있는 것이다. cout은 표준 출력을 뜻하고, endl은 줄바꿈과 출력 버퍼를 비우는 것을 뜻한다.



2. iostream 을 include 하는 방법

#include <iostream>

int main() {

    std::cout<<"Hello world"<<std::endl;
    return 0;

}


 이 경우는 iostream.h 헤더 파일을 포함시키는 것이 아니라. iostream 객체를 포함시키는 것이다. 따라서 객체의 함수를 사용하기 위해 객체명과 '::' 기호를 사용해야 한다.




표준 입력의 기본 형태


 입력도 출력과 마찬가지로 iostream.h 헤더 파일을 포함시키거나, iostream 객체를 포함시켜야 사용할 수 있다. 입력을 받는 방법은 cin>>입력받은값을 저장할 변수; 형태로 사용하며 다음과 같이 사용할 수 있다.

#include <iostream.h>

int main() {

    int a;

    cout<<"!!!Hello World!!!"<<endl;
    cin>>a;

    cout<<"test value : "<<a<<endl;

    return 0;
}


[결과값]

!!!Hello World!!!
1
test value : 1


 C++에서는 C와 달리 변수의 선언이 함수 맨 처음에 오지 않아도 오류를 발생하지 않는다. 따라서 위의 코드를 아래처럼 변경해도 문제가 생기지 않는다.

#include <iostream.h>

int main() {

    cout<<"!!!Hello World!!!"<<endl;

    int a;
    cin>>a;

    cout<<"test value : "<<a<<endl;

    return 0;
}


 위의 예제에서는 cout 형태로 사용했지만, C++의 특성을 살리기 위해선 include 도 <iostream> 으로 하고 std::cout 형태로 사용하는 것이 좋다.