Coding/C++

(New) C++언어 공부 0006

  • -
728x90
반응형

1. 접근자와 설정자

    • 접근자(accessor): 멤버 변수의 값을 반환 

        • 접근자만을 제공하면 읽기만 가능한 멤버 변수 생성 가능

        • 예) getBalance();

    • 설정자(mutator): 멤버 변수의 값을 설정 

        • 매개 변수를 통하여 잘못된 값이 넘어오는 경우, 사전에 차단 가능

        • 예) setBalance(val);

    

 

2. Template의 개념

    • 일반적인 코드를 작성하고 이 코드를 정수나 문자열과 같은 다양한 타입의 객체에 대하여 재사용하기 위해 사용

    • 함수 템플릿, 클래스 템플릿 등이 있음

    

 

3. STL의 개념

    • 표준 템플릿 라이브러리(Standard Template Library)의 약자로서, 많은 프로그래머들이 공통적으로 사용하는 자료 구조와 알고리즘에 대한 클래스

    • 컨테이너(container), 반복자(iterator), 알고리즘(algorithm)로 구성

        • 컨테이너는 자료를 저장하는 구조로 vector, list, map, queue, stack 등이 있음

        • 반복자는 컨테이너에 저장된 요소들을 순차적으로 처리하기 위한 컴포넌트

        • 정렬이나 탐색과 같은 다양한 알고리즘도 포함

 

3-1. STL Algorithm

    • 탐색, 정렬, 계수 알고리즘 등이 있음

    • #include <algorithm> 을 작성하여 사용 가능

    

    

 

4. Iterator

    • 현재 처리하고 있는 자료의 위치를 기억하는 객체

    • 포인터와 유사하며, 포인터 연산자 사용 가능

    • 증감 연산자 사용 가능

    • 비교 연산자 사용 가능

    

 

5. 포인터

    • 메모리에 저장된 변수의 위치를 가리키기 위해서 사용

        • 코드에서 사용하는 변수를 포함한 모든 것들은 메모리에 저장

    • 즉, 포인터에는 메모리의 주소가 저장됨

    • 변수의 주소를 가져오기 위해서는 &를 변수 앞에 붙임

    • 포인터 변수를 선언하기 위해 *를 변수 앞에 붙임

    • 포인터 변수가 가리키는 위치의 값을 접근하거나 바꾸기 위해서 *를 변수 앞에 붙여 역참조

    

 

5-1. 포인터 사용 예

    

 

5-2. 포인터 사용 시 주의점

    • 초기화가 안된 포인터 변수는 사용 금지

        • 포인터 변수는 초기값으로 항상 NULL을 주는 것이 좋음

    • 임의로 어떤 주소를 정해주는 것 금지

        • 메모리는 운영체제가 관리하는 공간

    • 포인터 변수에도 자료형이 존재

 

5-3. 포인터 연산

    • 포인터 변수로 가능한 연산

        • 증가, 감소, 덧셈, 뺄셈

    • 증감연산은 포인터의 자료형에 따라 증감하는 값이 다름

    

    

    • 연산 적용 예

    

 

5-4. 포인터와 배열

    • 배열의 이름은 배열의 시작 주소를 의미

    • 배열의 이름을 가지고 하는 모든 연산은 포인터 변수로 동일하게 할 수 있음

    • 아래에서 arr은 arr[0]의 주소, 즉 배열의 시작 주소를 의미

    

    

    • arr[0]를 출력한 결과와 *p의 출력결과가 동일

        • 배열의 시작 주소와 배열의 첫 번째 원소의 주소가 같기 때문

        

    • 이러한 포인터와 배열의 성질을 이용하여, 배열을 반환하는 함수도 작성 가능

 

6. 동적 메모리 할당

    • 실행 도중에 동적으로 메모리를 필요한 만큼만 힙(heap) 영역에 할당 받아, 메모리 사용 효율을 높이는 것

    • 사용이 끝나면 시스템에 메모리를 반납

    • new와 delete 키워드 사용

    

    • 데이터타입 *변수명 = new 데이터타입(초기값); 형태 이용

        • 배열은 = new 데이터타입[배열크기] {초기값}; 형태

    • delete 포인터변수명;, delete [] 배열포인터변수명; 이용

    • 클래스 객체 및 클래스 객체 배열도 동적 생성 가능

 

7. this 포인터

    • 클래스 내부에서 현재 객체를(자신) 참조하는 포인터

        • Python에서는 self

    • 매개변수의 이름과 멤버변수의 이름이 같을 때 사용

    • 멤버함수가 객체 자신을 반환할 때 사용

    • 클래스의 멤버 변수에 접근할 때 . 대신 -> 사용

728x90
반응형

'Coding > C++' 카테고리의 다른 글

(New) C++언어 공부 0008  (0) 2024.08.29
(New) C++언어 공부 0007  (2) 2024.08.29
(New) C++언어 공부 0005  (0) 2024.08.29
(New) C++언어 공부 0004  (0) 2024.08.29
(New) C++언어 공부 0003  (0) 2024.08.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.