Programming/C C++
추상클래스는 순수가상함수를 가진 클래스를 의미합니다. 기반 클래스로부터 상속받는 파생클래스에서는 반드시 기반클래스에 있는 순수가상함수를 재정의 하도록 강제합니다.
virtual int cals(int a, int b) = 0;
순수가상함수의 선언방식은 위와 같습니다. 가상함수에 =0을 붙이면 되는데 함수에 0을 대입하는것이 아닌 해당 함수를 순수가상함수로 만들겠다는 의미입니다.

클래스가 순수가상함수를 가지게 되면 해당클래스에서는 순수가상함수의 실행부분을 정의할 필요가 없고 클래스에 대한 객체를 생성할 수 없게 됩니다. 오로지 파생클래스에서 기반클래스에 있는 순수가상함수를 재정의하여 실행본체를 작성해야 하고 기반클래스만이 객체를 생성할 수 있게 됩니다.
class Base
{
public:
   virtual int cals(int a, int b) = 0;
};
기반클래스는 순수가상함수가 선언되면 해당 가상함수에 대한 실행부분을 정의하지 않습니다.
class Deri:public Base
{
public:
   int cals(int a, int b);
};

int Deri::cals(int a, int b)
{
   return a - b;
}
파생클래스에서 순수가상함수를 가진 클래스를 상속받으면 순수가상함수를 재정의하여 기능을 구현해야 합니다.
Deri* d = new Deri();
int r = d->cals(200, 100);
cout << r << endl;

0 0