변수
-함수의 매개변수는 변수명앞에 언더바를 붙임
ex) void Attack(string _monster)
변수
-함수의 매개변수는 변수명앞에 언더바를 붙임
ex) void Attack(string _monster)
namespace
-같은 이름으로 선언된 것을 구분하기 위해 이름을 붙여놓은 공간
:: (범위지정 연산자)
01-4 inline 함수 (0) | 2019.07.20 |
---|---|
01-3 매개변수의 디폴트 값(Default Value) (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 |
매크로 함수의 장점
-일반적인 함수에 비해서 실행속도의 이점
inline함수
-복잡한 함수를 매크로의 형태로 정의하기에 한계가 있어 일반함수처럼 정의하기 위해 만들어짐
-inline함수는 컴파일 시 함수 호출하는 곳에 함수 코드를 삽입함
매크로 함수 vs inline 함수
-매크로를 이용한 함수의 inline화는 전처리기에 의해서 처리됨, 키워드 inline을 이용한 함수의 inline화는 컴파일러에 의해서 처리됨
-매크로 함수는 자료형에 의존적이지 않은 함수
*컴파일러는 함수의 inline화가 성능에 해가 된다고 판단하면 키워드를 무시함, 컴파일러는 필요한 경우 임의로 일부 함수를 inline으로 처리함
01-5 namespace(이름공간) (0) | 2019.07.20 |
---|---|
01-3 매개변수의 디폴트 값(Default Value) (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 |
매개변수에 Defalut Value가 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자전달이 가능함
-전달되는 인자는 왼쪽에서부터 채워져나감
-부족분은 Default Value로 채워짐
Default Value의 선언이 함수의 선언부분에 위치해야 하는 이유
-컴파일러가 인자가 없으면 디폴트값으로 채워야 한다는 사실을 선언에서 보고 미리 알고 있어야함
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
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>
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은 호출안됨
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=#
int* (&pref)=ptr; -포인터 변수의 참조자 선언
함수의 반환형과 저장될 변수의 자료형에 따라 저장되는 값이 달라짐
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;
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. "참조자" 이용하는 방식
실행중인 프로그램의 메모리 공간 (0) | 2019.07.19 |
---|