(수근수근)

[C++] 기초 관련 용어 본문

C++

[C++] 기초 관련 용어

InformationFarm 2020. 5. 18. 11:11

선언(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