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

객체지향 프로그래밍

-현실에 존재하는 사물과 대상, 그리고 그에 따른 행동을 있는 그대로 실체화 시키는 형태의 프로그래밍

 

객체

-하나 이상의 상태 정보(데이터) + 하나 이상의 행동(기능)

 

하나의 객체가 다른 하나의 객체에게 메시지를 전달하는 방법은 함수호출을 기반으로함

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

02-3 참조자(Reference)  (0) 2019.07.20
02-2 bool 자료형  (0) 2019.07.20
03-2 클래스  (0) 2019.07.19
03-1 C++의 구조체  (0) 2019.07.19
04-4 this포인터  (0) 2019.07.18

구조체와 클래스 차이점

1.구조체는 선언된 함수가 아닌 다른 영역에서 변수를 초기화할 수 있음

-ex) Car myCar={"Hyundai",100};

-그러나, 클래스는 클래스 내에 변수는 클래스 내에 선언된 함수에서만 접근 가능

-ex) Car myCar;

 

2.구조체는 기본적으로 내부 변수와 함수에 대해 public으로됨 , 그러나 클래스는 default로 클래스 내에 선언된 변수 및 함수에 대한 접근을 private으로 함

 

 

접근제어 지시자

1.public : 어디서든 접근허용

2.protected : 상속관계에 있을 때, derived class에서 접근허용

3.private : 클래스 내에서만 접근 허용

 

 

접근제어 지시자 코드

 

 

==================================================================

객체

-클래스가 instance화 된 것

-현실 세계에서의 각각의 개체

 

멤버변수

-클래스를 구성하는 변수

 

멤버함수

-클래스를 구성하는 함수

 

===================================================================

C++에서의 파일분할

 

헤더파일

-Car.h : 클래스의 선언을 담음

-컴파일러가 클래스와 관련한 문장의 오류를 잡아내는 필요한 최소한의 정보를 담음

 

cpp파일

-Car.cpp : 클래스의 정의(멤버함수의 정의)를 담음

-다른 문장의 컴파일에 필요한 정보를 가지고 있지 않아서 함수의 정의는 컴파일된 후에, 링커에 의해 하나의 실행파일로만 묶이기만 하면됨

 

main파일

 

 

 

 

 

 

 

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

02-2 bool 자료형  (0) 2019.07.20
03-3 객체지향 프로그래밍  (0) 2019.07.19
03-1 C++의 구조체  (0) 2019.07.19
04-4 this포인터  (0) 2019.07.18
04-3 생성자와 소멸자  (0) 2019.07.18

+ Recent posts