변수

-함수의 매개변수는 변수명앞에 언더바를 붙임

ex) void Attack(string _monster)

namespace

-같은 이름으로 선언된 것을 구분하기 위해 이름을 붙여놓은 공간

 

::  (범위지정 연산자)

 

매크로 함수의 장점

-일반적인 함수에 비해서 실행속도의 이점

 

inline함수

-복잡한 함수를 매크로의 형태로 정의하기에 한계가 있어 일반함수처럼 정의하기 위해 만들어짐

-inline함수는 컴파일 시 함수 호출하는 곳에 함수 코드를 삽입함

 

매크로 함수 vs inline 함수

-매크로를 이용한 함수의 inline화는 전처리기에 의해서 처리됨, 키워드 inline을 이용한 함수의 inline화는 컴파일러에 의해서 처리됨

-매크로 함수는 자료형에 의존적이지 않은 함수

 

*컴파일러는 함수의 inline화가 성능에 해가 된다고 판단하면 키워드를 무시함, 컴파일러는 필요한 경우 임의로 일부 함수를 inline으로 처리함

 

 

매개변수에 Defalut Value가 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자전달이 가능함

-전달되는 인자는 왼쪽에서부터 채워져나감

-부족분은 Default Value로 채워짐

 

Default Value의 선언이 함수의 선언부분에 위치해야 하는 이유

-컴파일러가 인자가 없으면 디폴트값으로 채워야 한다는 사실을 선언에서 보고 미리 알고 있어야함 

 

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

01-5 namespace(이름공간)  (0) 2019.07.20
01-4 inline 함수  (0) 2019.07.20
01-2 함수 오버로딩(Function Overloading)  (0) 2019.07.20
01-1 cout,cin - C++에서의 입출력방식  (0) 2019.07.20
02-4 new, delete 연산자  (0) 2019.07.20

C언어에서는 동일한 이름의 함수가 정의되는 것을 허용하지 않음(함수호출할 때 이름으로 찾기 때문)

 

함수 오버로딩

-C++에서는 이름이 같은 함수호출시 전달되는 인자를 통해 호출하고자 하는 함수를 구분

 

함수 오버로딩 기준

1.매개변수의 자료형이 달라야함

2.매개변수의 개수가 달라야함

3.함수의 const선언 여부

 

*반환형은 호출되는 함수를 구분하는 기준 x

 

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

01-4 inline 함수  (0) 2019.07.20
01-3 매개변수의 디폴트 값(Default Value)  (0) 2019.07.20
01-1 cout,cin - C++에서의 입출력방식  (0) 2019.07.20
02-4 new, delete 연산자  (0) 2019.07.20
02-3 참조자(Reference)  (0) 2019.07.20

C에서의 printf,scanf를 대신하여 C++에서는 다음과 같은 입출력방식을 사용

 

1.cout(출력)

2.cin(입력)

 

C++에서는 입출력에 관련된 일을 하기 위해서 헤더파일 선언을 추가해야함

#incude <iostream>

 

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

01-3 매개변수의 디폴트 값(Default Value)  (0) 2019.07.20
01-2 함수 오버로딩(Function Overloading)  (0) 2019.07.20
02-4 new, delete 연산자  (0) 2019.07.20
02-3 참조자(Reference)  (0) 2019.07.20
02-2 bool 자료형  (0) 2019.07.20

기존 C++에서는 Heap의 메모리 동적 할당과 해제를 위해 malloc, free으르 사용하였음

 

다음과 같은 불편한점이 있었음

-할당한 대상의 정보를 무조건 byte크기 단위로 전달해야함

-malloc의 반환형이 void형 포인터 이기 때문에 적절한 형 변환을 거쳐야함

 

이를 위해, C++에서는 메모리 동적 할당과 해제를 위해 new, delete를 사용함

 

new

-동적 할당

 

delete

-할당 해제

 

 

*new와 malloc 함수의 동작방식에는 차이가 있음

-객체를 동적으로 할당할 때 new는 생성자가 호출되지만, malloc은 호출안됨

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

01-2 함수 오버로딩(Function Overloading)  (0) 2019.07.20
01-1 cout,cin - C++에서의 입출력방식  (0) 2019.07.20
02-3 참조자(Reference)  (0) 2019.07.20
02-2 bool 자료형  (0) 2019.07.20
03-3 객체지향 프로그래밍  (0) 2019.07.19

참조자

-자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름(별칭)

 

 

-참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언할 수 있음

 

int num1=27;

int& num2=num1;

int& num3=num1;

 

-참조자는 변수에 대해서만 선언이 가능하고 선언됨과 동시에 누군가를 참조해야함

 

int& ref=20; (x)

int& ref; (x)

int& ref=NULL;

 

*다만, const 참조자는 다음과 같이 상수도 참조가 가능

const int& ref=50;

-임시로 생성한 변수를 상수화하면 이를 참조자가 참조하게끔 하는 구조라, 결과적으로 상수화된 변수를 참조하는 형태가 됨

 

 

-배열요소는 변수로 간주되어 참조자의 선언이 가능

 

int arr[3]={1,3,5};

int& ref1=arr[0];

int& ref2=arr[1];

int& ref3=arr[2];

 

*포인터 변수도 변수이기 때문에 참조자의 선언이 가능

 

int* ptr=&num;

int* (&pref)=ptr; -포인터 변수의 참조자 선언

 

 

함수의 반환형과 저장될 변수의 자료형에 따라 저장되는 값이 달라짐

 

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

01-1 cout,cin - C++에서의 입출력방식  (0) 2019.07.20
02-4 new, delete 연산자  (0) 2019.07.20
02-2 bool 자료형  (0) 2019.07.20
03-3 객체지향 프로그래밍  (0) 2019.07.19
03-2 클래스  (0) 2019.07.19

bool

-true과 false를 표현하기위한 1바이트 크기 데이터를 담는 자료형

-true,, false는 각각 1과 0을 의미하는 키워드(옛날에는 참을 표현하기 위해 1, 거짓을 표현하기 위해 0을 사용했기 때문에, 정수의 형태로 변환하는 경우에 각각 1과 0으로 변환되도록 정의되어 있을 뿐이다)

 

bool isAwake=true; 

 

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

02-4 new, delete 연산자  (0) 2019.07.20
02-3 참조자(Reference)  (0) 2019.07.20
03-3 객체지향 프로그래밍  (0) 2019.07.19
03-2 클래스  (0) 2019.07.19
03-1 C++의 구조체  (0) 2019.07.19

Call-by-value(값에 의한 호출)

-값을 인자로 전달하는 함수의 호출방식

 

Call-by-reference(참조에 의한 호출)

-주소 값을 인자로 전달하는 함수의 호출방식

 

C++에서는 함수 외부에 선언된 변수의 접근방법 두 가지 존재

1. "주소 값"을 이용

2. "참조자" 이용하는 방식

 

'Programming Language > 기본개념' 카테고리의 다른 글

실행중인 프로그램의 메모리 공간  (0) 2019.07.19

+ Recent posts