C++ 상속

C Inheritance



상속은 객체 지향 프로그래밍의 매우 중요한 기능입니다. 프로그래머는 기존 클래스에서 클래스를 파생시킬 수 있습니다. 이것은 프로그래머가 코드를 재사용할 수 있게 해주기 때문에 특히 크고 복잡한 프로젝트에서 매우 유용합니다.

이 기사에서 우리는 C++ 프로그래밍의 상속 개념에 대해 논의할 것입니다. C++의 friend 함수 개념을 실제 예제와 함께 설명합니다.







왜 상속인가?

상속을 통해 다른 클래스나 기본 클래스에서 새 클래스나 파생 클래스를 만들 수 있습니다. 파생 클래스 또는 자식 클래스는 부모 클래스 또는 기본 클래스의 모든 기능을 갖습니다. 상속을 통해 코드를 재사용할 수 있습니다.



상속 유형

상속에는 여러 유형이 있습니다.



  1. 단순/단일 상속
  2. 계층적 상속
  3. 다단계 상속
  4. 다중 상속

이 기사에서는 단순/단일 상속만 고려할 것입니다.





예 1:

이제 C++에서 상속의 개념을 이해하기 위한 예제 프로그램을 살펴보겠습니다. 기본 클래스를 정의한 다음 이 클래스에서 다른 클래스를 파생시켰습니다. 따라서 파생 클래스에는 기본 클래스의 기능(멤버 및 함수)이 있습니다.

#포함하다

네임스페이스 표준 사용;

클래스 Base_Class
{
공공의:
정수NS;
무효의표시하다()
{
비용<< '기본 클래스 표시' <<NS<<;
}

};

클래스 파생_클래스:공개 Base_Class
{
공공의:
무효의보여 주다()
{
비용<< '파생 클래스의 표시' <<;
}
};

정수기본()
{
파생_클래스 dc;
직류NS = 100;
직류표시하다();
직류보여 주다();

반품 0;
}



예 2:

이것은 C++에서 상속의 또 다른 예입니다. 이 예제에서는 파생 클래스 개체가 생성될 때 생성자가 어떻게 호출되는지 볼 것입니다.

아래에서 볼 수 있듯이 두 개의 기본 클래스 생성자와 세 개의 파생 클래스 생성자를 정의했습니다. 아래 출력에서 ​​파생 클래스 생성자가 호출되기 전에 기본 클래스 생성자가 먼저 호출된다는 것을 분명히 알 수 있습니다.

#포함하다
네임스페이스 표준 사용;

클래스 Base_Class
{
공공의:
Base_Class()
{
비용<< 'Base_Class - 매개변수 없음' <<;
}
Base_Class(정수NS)
{
비용<< 'Base_Class - 매개변수: ' <<NS<<;
}
};

클래스 파생_클래스:공개 Base_Class
{
공공의:
파생_클래스()
{
비용<< 'Derived_Class - 매개변수 없음' <<;
}
파생_클래스(정수그리고)
{
비용<< 'Derived_Class - 매개변수: ' <<그리고<<;
}
파생_클래스(정수NS,정수그리고):Base_Class(NS)
{
비용<< 'Derived_Class의 매개변수: ' <<그리고<<;
}
};

정수기본()
{
파생_클래스 d(7,19);
}

예 3:

이 예제에서는 파생 클래스 개체를 사용하는 방법을 살펴보겠습니다.

보시다시피 Rectangle_Class와 Cube_Class의 두 가지 클래스가 정의되어 있습니다. Rectangle_Class는 파생 클래스, 즉 Cube_Class가 파생된 기본 클래스입니다. 따라서 Rectangle_Class에서 Cube_Class로 기능을 상속합니다.

또한 공개 액세스 제어로 Cube_Class를 상속하고 있음을 알 수 있습니다. 이는 파생 클래스가 기본 클래스의 모든 비공개 멤버에 액세스할 수 있음을 의미합니다.

파생 클래스의 객체를 선언한 다음 기본 클래스, 즉 setLength() 및 setBreadth()에서 메서드를 호출합니다.

#포함하다

네임스페이스 표준 사용;

클래스 Rectangle_Class
{
사적인:
정수길이;
정수;
공공의:
Rectangle_Class();
Rectangle_Class(정수NS,정수NS);
Rectangle_Class(Rectangle_Class&NS);
정수getLength()
{
반품길이;
}
정수getBreadth()
{
반품;
}
무효의세트 길이(정수NS);
무효의setBreadth(정수NS);
정수지역();
};

클래스 Cube_Class:공개 Rectangle_Class
{
사적인:
정수;
공공의:
Cube_Class(정수시간)
{
=시간;
}
정수높이()
{
반품;
}
무효의높이 설정(정수시간)
{
=시간;
}
정수용량()
{
반품getLength()*getBreadth()*;
}
};


Rectangle_Class::Rectangle_Class()
{
길이=1;
=1;
}
Rectangle_Class::Rectangle_Class(정수NS,정수NS)
{
길이=NS;
=NS;
}
Rectangle_Class::Rectangle_Class(Rectangle_Class&NS)
{
길이=NS.길이;
=NS.;
}
무효의Rectangle_Class::세트 길이(정수NS)
{
길이=NS;
}
무효의Rectangle_Class::setBreadth(정수NS)
{
=NS;
}
정수Rectangle_Class::지역()
{
반품길이*;
}

정수기본()
{
큐브_클래스 c(8);
씨.세트 길이(12);
씨.setBreadth(9);
비용<<'볼륨은 '<<씨.용량()<<;
}

결론:

이 기사에서 나는 상속의 개념을 설명했습니다. C++ . C++는 다중 상속(즉, 여러 기본 클래스 또는 상위 클래스에서 기능 상속)을 포함한 다양한 유형의 상속을 지원합니다. 그러나 여기서는 단순화하기 위해 단일 상속만 고려했습니다. C++ 프로그래밍에서 상속을 사용하고 코드를 재사용하는 방법을 설명하기 위해 세 가지 작업 예제를 보여주었습니다. 또한 이것은 C++의 매우 유용한 기능입니다.