(수근수근)
[C++] 기초 관련 용어 본문
선언(Declearation)
- 코드에 사용되는 어떤 대상의 이름과 타입을 컴파일러에게 알려주는 것
- 세부적인 사항은 선언에 없다.
extern int x; //객체 선언
std::size_t numdigit(int number ) //함수 선언
class Widget; // 클래스 선언
template<typename T> class GraphNode; // 템플릿 선언
* 정수 기본제공인데 객체로 부른다.
* size_t는 원래 부호없는 정수타입을 typedef로 정의한것.
정의(Definition)
- 선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것
- 객체의 경우 객체에 대한 메모리 마련하는 부분
- 함수나 템플릿은 그에 대한 코드 body를 작성하는 부분
초기화 (initialization)
- 객체에 초기값을 부여하는 과정
- 생성자에 의해 이루어진다.
- 기본생성자 인자없이 객체 생성시 불러지는 생성자(자바는 안만들어도 컴파일러가 생성해줌)
class C{
public :
explicit C(int x); // 기본생성자가 아니다.
}
explicit 로 선언되어있는 생성자는 암시적인 타입변환을 수행하는데 쓰이지 않는다. 타입변환을 막아준다.
(암시적 타입변환에 생성자가 사용될 여지를 남겨주어야하는 뚜련한이유가 없는한 explicit 선언을 선호)
class Widget{
public :
Widget(); //기본생성자
Widget(const Widget& rhs); //복사생성자 = 값에의한 전달
Widget& operator = (const Widget& rhs); //복사대입연산자
}
STL
-표준 템플릿 라이브러리(Standard Templete :Library)의 준말
- C++표준 라이브러리 : 컨테이너, 알고리즘 관련기능의 상당부분 함수객체
-
* 부스트 : 오픈소스 C++ 라이브러리를 제공하는 단체
http://boost.org
'C++' 카테고리의 다른 글
[1] C 시작하기 (0) | 2020.05.19 |
---|---|
[C++] #define 대신 const enum inline (0) | 2020.05.18 |
Linking / Linker (0) | 2020.05.15 |
암호화 알고리즘 AES-256 (0) | 2020.05.07 |
[C++]선형자료구조 - vector (0) | 2020.04.06 |
Comments