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++ 네임스페이스 수업에서 확인할 수 있습니다.
주석(comment)
주석이란 코드에 대한 이해를 돕는 설명을 적거나 디버깅을 위해 작성하는 일종의 메모입니다.
C++ 컴파일러는 주석은 무시하고 컴파일하므로, 실행 파일에서는 이러한 주석을 확인할 수 없습니다.
C++에서 주석을 작성하는 문법은 다음과 같습니다.
문법
// C++ 한 줄 주석
C++은 한 줄 주석뿐만 아니라, /*로 시작해서 */로 끝나는 C언어 스타일의 여러 줄 주석도 사용할 수 있습니다.
다음 예제는 여러 줄 주석 안에 또 다른 한 줄 주석을 중첩해서 삽입하는 예제입니다.
예제
/* 여러 줄
// 이렇게 두 줄 주석 안에 또 다른 한 줄 주석을 삽입할 수 있습니다.
주석입니다. */
위의 예제처럼 C++에서는 여러 줄 주석 안에 또 다른 한 줄 주석을 삽입할 수 있습니다.
하지만 다음 예제처럼 여러 줄 주석 안에 또 다른 여러 줄 주석은 중첩해서 삽입할 수는 없습니다.
예제
① /* 여러 줄
② /* 또 다른 여러 줄 주석입니다. */
③ 주석입니다. */
위의 예제처럼 여러 줄 주석 안에 또 다른 여러 줄 주석을 삽입하면, ②번 라인에서 삽입한 주석의 종료 기호(*/)를 ①번 라인에서 시작한 첫 번째 주석이 자신의 종료 기호(*/)로 잘못 인식하게 됩니다.
따라서 위 예제의 ③번 라인은 주석으로 인식되지 못하고, 컴파일 시 오류가 발생하게 됩니다.
그러므로 C++에서 여러 줄 주석은 절대로 중첩해서 사용해서는 안 됩니다.