..

Search

4) C++ 프로그램

4) C++ 프로그램

C++ 프로그램


간단한 C++ 프로그램

간단한 C++ 프로그램의 기본 구조는 다음과 같습니다.

언제나 다음과 같이 구성되는 것은 아니지만 많은 C++ 프로그램이 이와 비슷한 형태로 구성됩니다.

예제

#include 문

#define 문

 

int main()

{

    명령문;

    return 문;

}

 

예제

#include <iostream>

#define TEXT "Welcome to C++ Programming!!"

 

int main()

{

    std::cout << TEXT;

    return 0;

}

코딩연습 ▶

실행 결과

Welcome to C++ Programming!!


main() 함수

C++ 프로그램은 가장 먼저 main() 함수를 찾고, 그곳에서부터 실행을 시작합니다.

따라서 모든 C++ 프로그램은 반드시 하나의 main() 함수를 가지고 있어야 합니다.

만약 main() 함수를 발견하지 못하면 C++ 컴파일러는 오류를 발생시킬 것입니다.


명령문(statement)

C++ 프로그램의 동작을 명시하고, 이러한 동작을 컴퓨터에 알려주는 데 사용되는 문장을 명령문(statement)이라고 합니다.

이러한 C++의 모든 명령문은 반드시 세미콜론(;)으로 끝나야 합니다.

실행 결과

std::cout << "C++ 프로그래밍"; // 정상적으로 출력됨.

std::cout << "C++ 프로그래밍"  // 오류가 발생함.


반환(return)문

반환문은 함수의 종료를 의미하며, 함수를 호출한 곳으로 결괏값을 반환하는 역할을 합니다.

특히 main() 함수가 반환되면, 프로그램 전체가 종료됩니다.


선행처리(preprocess)문

#include 문과 #define 문은 모두 선행처리기에 의해 처리되는 선행처리문입니다.

 

#include 문은 외부에 선언된 함수나 상수 등을 사용하기 위해서 헤더 파일의 내용을 현재 파일에 포함할 때 사용합니다.

C언어에서는 헤더 파일에 .h 확장자를 사용했지만, C++에서는 헤더 파일의 확장자를 사용하지 않기로 합니다.

따라서 기존 C언어 헤더 파일들의 이름 앞에 c를 추가하여 C++ 스타일의 헤더 파일로 변환하기도 합니다.

예제

#include <math.h> // C언어에서는 이 스타일만 허용됨.

#include <cmath>  // C++에서는 이 스타일뿐만 아니라 위의 스타일도 사용할 수 있음.

 

물론 원칙은 위와 같이 바뀌었지만 C++ 프로그램에서는 기존의 C언어 스타일로도 헤더 파일을 사용할 수 있습니다.

 

#define 문은 함수나 상수를 단순화해주는 매크로를 정의할 때 사용합니다.


네임스페이스(namespace)

네임스페이스란 이름이 기억되는 영역을 뜻하며, 이름이 소속된 공간을 의미합니다.

네임스페이스는 C++ 프로그램을 작성할 때 발생하는 이름에 대한 충돌을 방지해 주는 방법을 제공합니다.

이러한 네임스페이스는 C언어에는 없는 C++ 만의 새로운 기능입니다.

 

C++ 프로그램의 표준 구성 요소인 클래스, 함수, 변수 등은 std라는 이름 공간에 저장되어 있습니다.

따라서 C++ 프로그램에서 표준 헤더 파일인 iostream 내의 정의를 사용하려면 다음과 같이 사용해야 합니다.

예제

#include <iostream>

#define TEXT "Welcome to C++ Programming!!"

 

int main()

{

    std::cout << TEXT;

    return 0;

}

 

위의 예제처럼 std라는 네임스페이스에 있는 정의를 사용하려면, std:: 접두어를 붙여 해당 정의가 std라는 네임스페이스에 있다는 것을 컴파일러에 알려줘야 합니다.

 

이러한 네임스페이스에 속한 정의를 간단하게 사용하려면 다음과 같은 명령문을 추가하면 됩니다.

문법

using namespace std; // std라는 네임스페이스에 속한 정의들은 네임스페이스 이름을 붙이지 않아도 사용할 수 있음.

 

다음 예제는 앞서 살펴본 예제와 정확히 같은 동작을 수행합니다.

예제

#include <iostream>

#define TEXT "Welcome to C++ Programming!!"

using namespace std;

 

int main()

{

    cout << TEXT;

    return 0;

}

 

C++ 네임스페이스에 대한 더 자세한 사항은 C++ 네임스페이스 수업에서 확인할 수 있습니다.

C++ 네임스페이스 수업 확인 =>


주석(comment)

주석이란 코드에 대한 이해를 돕는 설명을 적거나 디버깅을 위해 작성하는 일종의 메모입니다.

C++ 컴파일러는 주석은 무시하고 컴파일하므로, 실행 파일에서는 이러한 주석을 확인할 수 없습니다.

 

C++에서 주석을 작성하는 문법은 다음과 같습니다.

문법

// C++ 한 줄 주석

 

C++은 한 줄 주석뿐만 아니라, /*로 시작해서 */로 끝나는 C언어 스타일의 여러 줄 주석도 사용할 수 있습니다.

 

다음 예제는 여러 줄 주석 안에 또 다른 한 줄 주석을 중첩해서 삽입하는 예제입니다.

예제

/* 여러 줄

    // 이렇게 두 줄 주석 안에 또 다른 한 줄 주석을 삽입할 수 있습니다.

주석입니다. */

 

위의 예제처럼 C++에서는 여러 줄 주석 안에 또 다른 한 줄 주석을 삽입할 수 있습니다.

하지만 다음 예제처럼 여러 줄 주석 안에 또 다른 여러 줄 주석은 중첩해서 삽입할 수는 없습니다.

예제

① /* 여러 줄

     /* 또 다른 여러 줄 주석입니다. */

 주석입니다. */

 

위의 예제처럼 여러 줄 주석 안에 또 다른 여러 줄 주석을 삽입하면, ②번 라인에서 삽입한 주석의 종료 기호(*/)를 ①번 라인에서 시작한 첫 번째 주석이 자신의 종료 기호(*/)로 잘못 인식하게 됩니다.

따라서 위 예제의 ③번 라인은 주석으로 인식되지 못하고, 컴파일 시 오류가 발생하게 됩니다.

 

그러므로 C++에서 여러 줄 주석은 절대로 중첩해서 사용해서는 안 됩니다.


연습문제