Study/C/C++
-
Smart PointerStudy/C/C++ 2018. 9. 1. 20:07
Smart Pointer- 포인터처럼 동작하는 클래스 템플릿- 사용이 끝난 메모리를 자동으로 해제- 메모리 누수로부터 프로그램의 안정성을 보장해줄 수 있다.- C++11에서 표준이 된 Smart pointer = shared_ptr, unique_ptr, weak_ptr auto_ptr~auto_ptr(){delete _myPtr;}- 소멸자에서 delete를 호출 -> 단일 생성된 객체에 대해서만 메모리 해제 보장- 대입 연산 시 이전 값은 null, 복사되지 않는다. -> 같은 객체에 대해 소멸자를 2번 호출할 수도 있기 때문에 하나를 null로- 문제가 많아서 C++11 표준에서 삭제됐다. unique_prt- 하나의 포인터만 특정 객체를 소유- move() 를 이용해 소유권을 이전할 수 있다.- ..
-
Effective C++ Ch.1Study/C/C++ 2017. 5. 23. 16:18
Chapter 1. C++에 왔으면 C++의 법을 따릅시다. 항목 1. C++를 언어들의 연합체로 바라보는 안목은 필수 ( C++ ) = ( C ) + ( 객체 지향 개념의 C++ ) + ( 템플릿 C++ ) + ( STL ) C : 절차 지향 개념의 언어, C++의 기본이 된다. 객체 지향 개념의 C++ : 클래스, 캡슐화, 상속, 다형성, 가상 함수 등을 포함- 클래스 : 데이터와 기능을 구현하는 일종의 틀- 캡슐화 : 외부의 객체로부터 내부의 데이터에 대한 접근을 제한하는 것(정보 은닉)- 상속 : 기존의 클래스들을 바탕으로 새로운 클래스를 만든다.- 다형성 : 하나의 인터페이스로 다양한 기능을 가질 수 있다. 오버로딩, 오버라이딩 템플릿 C++ : 템플릿 메타프로그래밍 - 템플릿을 이용한 프로그래..
-
정적 멤버 변수 / 정적 멤버 함수Study/C/C++ 2016. 4. 26. 03:42
- 정적(static) 멤버 변수 / 정적(static) 멤버 함수 클래스 내에 static으로 선언하면, 클래스에서 공유할 수 있는 멤버 변수, 멤버 함수가 된다.=> static은 지역 변수와 전역 변수의 성질을 가지고 있음. 그래서 클래스 내에 static 멤버는 클래스로 접근을 제한하면서, 전역 변수처럼 프로그램이 시작될 때 데이터 영역에 할당되어 프로그램이 종료될 때 해지됨. static 키워드를 사용하면, 프로그램 시작됐을 때 전역 변수와 함께 데이터 영역에 할당된다. 그렇기 때문에 객체가 생성되어 있지 않아도 static으로 선언된 멤버 변수/함수는 호출 가능하다. 일반 변수/함수와는 달리, Class:: 을 붙이고 사용한다. 변수를 초기화할 때도 마찬가지로 Class:: 을 붙여야 한다. ..