본문 바로가기

C++

[C++] 05. 인라인 함수 - inline function ※요약인라인 함수는 프로그램의 실행 속도를 높이기 위해 추가된 기능이며 C언어의 매크로 함수와 비교된다. (개발자 입장에서)일반 함수와 인라인 함수의 가장 큰 차이점은 함수의 호출 방식이다. 일반 함수의 호출 방법은 프로그램 실행 중 함수를 실행해야하면 해당 함수의 주소로 점프시켰다가, 함수의 처리가 종결되면 다시 원래의 자리로 돌아오는 것이다. 이렇게 앞뒤로 점프를 수행하고, 점프할 위치를 기억하려면 함수를 사용하는데 시간이 많이 걸린다. 인라인 함수는 컴파일된 함수 코드가 프로그램의 코드 안에 직접 삽입되어진다. 이 말은 컴파일러가 함수를 호출하는 대신, 그에 대응하는 함수 코드로 대체한다는 것을 의미하며 함수 호출없이 삽입된 함수 코드를 그 자리에서 처리하므로 해당 함수를 수행하기 위해 프로그램이 .. 더보기
[C++] 04. 매개변수의 디폴트 값 ※요약 매개변수의 디폴트 값이란 함수를 호출할 때 매개변수(전달인자)를 생략할 경우, 지정된 디폴트 값을 넣어서 함수를 호출하는 걸 말한다. ※특징 - 디폴트 값은 함수 원형 선언시 설정한다. - 디폴트 값은 오른쪽에서 왼쪽 순서로 설정해야 한다. ※예문 int Test( int nNum1, int nNum2, int nNum3=30 ) O int Test( int nNum1, int nNum2=20, int nNum3=30 ) O int Test( int nNum1=10, int nNum2=20, int nNum3=30 ) O int Test( int nNum1=10, int nNum2, int nNum3 ) X int Test( int nNum1, int nNum2=20, int nNum3 ) X i.. 더보기
[C++] 03. 함수 오버로딩 ( function overloading ) ※요약함수 오버로딩이란, 서로 다른 여러 개의 함수가 하나의 이름을 공유(연결)하는 것이다.함수 오버로딩은 서로 다른 데이터형을 대상으로 하지만 기본적으로는 같은 작업을 하는 함수들에만 사용하는 것이 좋다. ※특징 - C++은 함수 호출 시 함수의 이름과 전달되는 인자의 정보를 참조하여 호출할 함수를 결정한다. - 함수 오버로딩의 열쇠는 전달 인자이며, 이것을 함수 시그내처( function signature )라고 한다. - 함수 오버로딩의 조건은 매개 변수의 자료형, 매개 변수의 개수, 매개 변수의 순서 등이다. ※예문↓ (O)매개 변수의 자료형이 다르므로 함수 오버로딩 성립 void print( float fNum ) { . . . } void print( int nNum ) { . . . } ↓ .. 더보기
[C++] 02-02. scanf를 대신하는 cin ※요약C++의 cin은 키보드로 입력한 값을 저장할 변수가 받아들이는 형태로 알아서 바꿔 저장한다.cin은 iostream 파일에 입력 스트림을 나타내는 객체로 정의되어 있다. ※특징 - cin은 "씨 인"이라고 발음한다. - cin은 문자열, 수, 문자 등 다양한 데이터형을 서식문자 없이 변수형에 맞게 자동으로 입력해 준다. - cin에서 >> 표시는 입력 연산자하고 부른다. - 입력 연산자로 >>를 선택한 이유는 정보가 흐르는 방향을 연상시키기 위한 것이다. ※예제 #include using namespace std; int main( ) { int nInputNum; cout > nInputNum; cout 더보기
[C++] 02-01. printf를 대신하는 cout ※요약 C++의 cout은 C언어의 printf와 달리 출력할 것이 문자인지 정수인지 소수인지 자동으로 알아차리고 출력한다. 위와 같은 것이 가능한 이유는 객체 지향 기능을 가지고 있기 때문에 가능한 것이며, 연산자 오버로딩의 한 예이다. ※특징 - cout은 "씨 아웃"이라고 발음한다. - cout은 문자열, 수, 문자 등 다양한 데이터형을 서식문자 없이 자동으로 출력해 준다. - cout에서 더보기
[C++] 01. Hello World ※C++요약 이 게시글에서는 C++의 가장 기본이 되는 구조를 전반적으로 간단히 살펴본다. ※C++특징 - C++은 1980년대 초 Bjarne Stroustrup에 의해 개발되었다. - C++ 표준을 정하기 위해 ANSI와 ISO가 1년에 세 번 소집된다. - ANSI/ISO 위원회를 통해 RTTI, Template, STL 등의 새로운 특성이 C++에 추가 되었고 지금도 추가되고 있다. - dll(동적)이나 lib(정적) 라이브러리를 제외한 C++프로그램은 반드시 main( )가 있어야 한다. - C++의 OOP 특성은 고수준의 추상화를 제공한다. - C++의 C 특성은 저수준의 하드웨어 접근을 제공한다. ※예제 #include //전처리 지시자 using namespace std;//정의 가시화 i.. 더보기
STL(Standard Template Library)이란 STL이란 자료 구조와 알고리즘을 템플릿으로 제공하는 C++ 표준 라이브러리로써, Standard Template Library의 약자입니다. STL의 주요 구성 요소는 컨테이너, 할당기, 반복자, 어댑터, 알고리즘, 함수 객체로 이뤄져 있으며, 컨테이너, 알고리즘, 반복자가 가장 중요한 세 요소입니다. STL의 특징으로는 이름과 같이 일반화를 지원한다는 것과 광범위하게 이곳저곳에 두루두루 재사용 될 수 있다는 것입니다. 그 와중에도 (적재적소 사용시)효율은 떨어지지 않으며 표준이므로 이식성에도 좋고 다양한 자료구조와 알고리즘을 최적화하여 사용자가 쓰기 좋게 만들어 놓았으며 해당 알고리즘이 내부적으로 어떻게 동작하는지 몰라도 사용할 수 있는 특징들이 있습니다. STL의 단점으로는 템플릿에 기반 하기 때문.. 더보기