목차
1. C++ 언어의 특징
1) C 언어로 작성된 프로그램과의 호환성을 유지
2) 객체지향적 개념 도입
3) 실행 시간의 효율성 저하를 최소화
1-1. 추가된 기능
1) inline function
2) overloading
3) overriding
4) default parameter
5) reference variable
int a = 5;
int& b = a;
6) call by reference
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
7) new와 delete 연산자
int *a = new int;
int *b = new int(5);
*a = 5;
if(!a)
delete a;
if(!b)
delete b;
8) operator overloading
9) generics
template<typename T1>
void PrintTemplate(T1 a)
{
cout << a << endl;
}
10) virtual function
정적 바인딩
class Vehicle
{
public:
void ride() { cout << "탈 것을 탄다." << endl; }
};
class Car : public Vehicle
{
public:
void ride() { cout << "차를 탄다." << endl; }
};
int main(void)
{
Vehicle *v;
Vehicle ve;
Car c;
v = &ve;
v->show();
v = &c;
v->show();
}
동적 바인딩
class Vehicle
{
public:
virtual void ride() { cout << "탈 것을 탄다." << endl; }
};
class Car : public Vehicle
{
public:
virtual void ride() { cout << "차를 탄다." << endl; }
}
int main(void)
{
Vehicle *v;
Vehicle ve;
Car c;
v = &ve;
v->show();
v = &c;
v->show();
}
virtual void ride() = 0 {}
1-2. OOP 특징
1) encapsulation
2) inheritacne
3) polymorphism