본문 바로가기

{Programing}/C.C++26

c/c++ 템플릿 템플릿(template)이란 함수 오버로딩 같이 자료형에 따라 같은 코드를 여러번 작성해야하던 번거로움을 임의의 자료형으로 대체하여 한번만 작성해도 되도록 만들어주는 기법. 함수 템플릿 : 함수의 기능은 명확하게. 입출력은 모호하게. template T sum(T a, T b) { return a+b; } 여기에서 첫줄은 템플릿 자료형을 정의 하는 부분이고, 나머지가 템플릿 함수이다. 입력되는 자료형. 반환형 모두 템플릿 자료형을 사용하여 어떤 자료형이 들어오더라도 처리할 수 있게 한 것. 템플릿을 여러개 써도 된다. template void printAll(T1 a, T2 b) { cout 2020. 1. 13.
c/c++ enum, preprocesser 열거형 : 정수형 상수들을 알아보기 쉬운 별칭으로 명명해 묶어두는 방식. 각 요소들은 순서대로 1씩 증가하는 값을 가지게 됨. 초기값 : 일반 변수의 값 초기화 처럼 사용하는 값. 이 값을 기준으로 다음 열거형 값부터 1씩 증가되는 값을 가짐. enum DayOfWeek { // 열거형 정의 Sunday = 0, // 초깃값 할당 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; /* typedef enum _DayOfWeek { // 열거형 이름은 _DayOfWeek Sunday = 0, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } DayOfWeek; // typedef를 사용하여 열거형 별칭.. 2020. 1. 6.
c/c++ const 예약어 const 예약어는 변수, 포인터, 멤버함수, 객체를 상수화 시키는 예약어 이다. 상수란 변경할수 없는 고유한 값을 뜻하며. const 상수와 #define 상수가 있다. 변수, 객체는 각각 자료형의 앞에 const 예약어를 붙인다. 멤버 함수의 경우 함수명 뒤에 붙인다. 이렇게 되면 전부 상수화 되어 변수는 값을, 멤버함수는 함수 내부에서 멤버변수를 변경할수 없게, 객체는 멤버 변수를 다른 데이터로 변경할수 없게 한다. 포인터의 경우는 두가지로 나뉘는데 //상수를 가리키는 포인터. const int * cp; //포인터 변수에 저장된 주소가 상수화 되는 포인터. int * cosnt pc; //완전 상수. 포인터든 값이든 절대 변경불가. const int * const cpc; 첫번째 경우는 이미 정의.. 2020. 1. 6.
c/c++ 배열, 동적할당 배열 : 같은 자료형의 연관된 변수들을 하나로 묶어서 사용하는 자료구조. ex) int 형 배열 1 2 3 4 5 6 7 8 9 char 형 배열 h e l l o 배열의 선언 및 초기화 변수명 뒤에 대괄호를 쓰고 그 안에 배열의 크기를 작성한다. 초기화는 중괄호에 콤마로 구분하여 작성하고. 추후에 배열 요소에 인덱스로 접근하여 값을 변경할 수 있다. int arr[5] = {1,2,3,4,5}; int arr2[10]; for(int i=0; i>10; ++i) { arr2[i] = i; } 배열의 인덱스 배열을 사용할 때는 인덱스로 접근하는 방법과, 포인터 연산을 이용해 접근하는 방법이 있다. 인덱스란 배열의 각 요소를 가리키는 번호로 배열의 요소수가 n 개라면 인덱스의 범위는 0부터 n-1 까지이다.. 2020. 1. 6.