2023. 9. 25. 10:54ㆍ개발하는중/cpp
C와 C++언어
C++언어 = 1979년 Bell연구소의 Bjarne Stroustrup이 C언어를 확장하여 만든 프로그래밍 언어
C with Classes -> 1983년부터 C++ 이름 사용
주요 확장 내용
객체지향 프로그래밍 클래스, 상속, 다형성 동적 바인딩 등
일반화 프로그래밍 : 템플릿
예외 처리
프로그램 소스 파일 확장자 .cpp/.cxx/.C 등 사용 .cpp주로 사용
헤더파일
클래스, 함수의 원형, 매크로, 전역변수, 상수 등 여러소스 파일에 공통적으로 선언되는 내용을 담고 있는 파일
단독으로 컴파일 되지 않고, #include라는 선행처리기 지시어에 의해 소스 프로그램 파일에 삽입되어 함께 컴파일됨
확장자 .h .hpp등 사용
소스파일 -> 컴파일 -> 목적파일 ->(라이브러리) -> 링크 -> 실행 프로그램 파일 => 전체를 빌드라고 한다
선행처리? c++ 프로그램을 컴파일 하기 전에 소스 프로그램을 가공하여 컴파일러가 실제로 번역할 소스 프로그램을 만드는 것
선행처리기 지시어(preprocessor directives)로 처리를 지시함
-선행처리기 지시어는 #으로 시작함
-선행처리기 지시어는 문장은 한 행에 한 개의 문장을 작성
대표적 선행 처리
-헤더파일 삽입 #include
-매크로 선언 및 해제 #define #undef
-조건부 컴파일 #if(#endif 짝을 이룸) #ifdef #ifndef
C++프로그램의 문장
하나의 문장은 단어와 연산자, 숫자, 문자, 문자열, 문장부호 빈칸 등에 정해진 문법에 따라 나열하여 작성
문장의 끝에는 세미콜론(;)을 기입하여 문장을 구분
블록_block
한 개 이상의 문장을 중괄호 {} 안에 나열하여 묶어 놓은 것
여러개의 문장을 하나의 문장처럼 취급하거나 함수의 몸체를 구성하기 위해 사용
함수
함수의 구성
int main() // 머리부 main프로그램의 시작점
{
{
입출력 스트림
std:cout 객체
표준 출력 스트림 객체
데이터를 문자열로 변환하여 출력함
출력 연산자(삽입 연산자) = <<
ex) std::cout << “c++ 프로그램”;
ex) int a = 10;
std::cout << “a의 값은”;
std::cout << a << “입니다.” << std::endl;
*endl : end line 라인을 끝내고 개행
std::cin 객체
표준 입력 스트림 객체
문자열을 입력 변수의 자료형의 값으로 변환하여 입력
입력 연산자(추출 연산자) = >>
ex) int a;
char str[100];
std::cin >> a >> std;
*백색 구분 문자(빈칸, 탭, 새줄문자)는 구분 문자로 취급한다.
명칭공간?
특정한 명칭들이 인식되는 프로그램의 부분
-다른 영역의 명칭 선언과 무관하에 명칭공간 내에서 자유롭게 명칠을 선언하여 사용할 수 있음
ex) namespace testNamespace{
int count;
}
testNamespace::count = 0; // 명칭공간 외부에서는 소속 명칭공간을 지정하여 사용 해야 함
동일한 명칭이라도 서로 다른 명칭공간에서 정의 되었다면 별개의 것으로 구분함
전력 명칭공간 = 특정 명칭공간에 속하지 않는 기본 명칭 공간
std 명칭공간 = 표준 c++라이브러리의 명칭 들이 정의 되어 있는 명칭 공간
using을 이용한 명칭공간 사용
특정 명칭공간이나 명칭공간내의 특정 이름을 자주 사용하는 경우 명칭공간 지정을 간소화 할 수 있음
ex) using namespace std;
ex) using std::cout;
using std::endl;
C++ 언어는 C 언어에 객체지향 프로그래밍, 일반화 프로그래밍, 예외처리 등의 기능을 추가하여 확장된 프로그래밍 언어이다.
C++ 프로그램은 ‘.cpp’라는 확장자를 갖는 소스 프로그램 파일과 ‘.h’라는 확장자를 갖는 헤더파일이라는 두 가지 종류의 소스 파일에 작성한다.
선행처리기 지시어를 이용하여 소스 파일의 컴파일에 앞서 헤더파일의 삽입, 매크로 선언, 조건부 컴파일 등의 선행처리를 한다.
C++ 프로그램은 함수로 구성되며, 콘솔에서 동작하는 응용 프로그램의 경우 일반적으로 main()이라는 함수부터 프로그램 실행이 시작된다.
명칭공간을 이용하면 프로그램을 구성하는 영역별로 다른 영역과의 충돌 우려 없이 자유롭게 명칭을 선언하여 사용할 수 있다.