도구 태그
예배 규칙서
도구 태그
C++ 상속
객체 지향 프로그래밍에서 가장 중요한 개념 중 하나는 상속입니다. 상속을 사용하면 다른 클래스를 기반으로 클래스를 정의할 수 있으므로 애플리케이션을 더 쉽게 만들고 유지 관리할 수 있습니다. 이는 또한 코드 기능을 재사용하고 실행 시간을 향상시키는 효과를 얻습니다.
클래스를 생성할 때 새 데이터 멤버와 멤버 함수를 다시 작성할 필요가 없으며 새 클래스가 기존 클래스의 멤버를 상속하도록 지정하기만 하면 됩니다. 이 기존 클래스를 기본 클래스라고 하고 새 클래스를 파생 클래스라고 합니다.
상속은 is 관계를 나타냅니다. 예를 들어, 포유류는 동물이고 개는 포유류이므로 개는 동물입니다.
기본 클래스 및 파생 클래스
클래스는 여러 클래스에서 파생될 수 있습니다. 즉, 여러 기본 클래스에서 데이터와 함수를 상속받을 수 있습니다. 파생 클래스를 정의하려면 클래스 파생 목록을 사용하여 기본 클래스를 지정합니다. 클래스 파생 목록은 하나 이상의 기본 클래스 이름을 따서 명명되고 다음 형식을 갖습니다.
class derived-class: access-specifier base-class
여기서 액세스 한정자 access-specifier는 public, protected 또는 private 중 하나이고 base-class는 이전에 정의된 것입니다. 수업의 이름입니다. 액세스 지정자를 사용하지 않는 경우 기본값은 비공개입니다.
기본 클래스 Shape가 있다고 가정하고, Rectangle은 아래와 같이 파생 클래스입니다.
#include <iostream>
using namespace std;
// 基类
class Shape
{
public:
void setWidth(int w)
{
width = w;
}
void setHeight(int h)
{
height = h;
}
protected:
int width;
int height;
};
// 派生类
class Rectangle: public Shape
{
public:
int getArea()
{
return (width * height);
}
};
int main(void)
{
Rectangle Rect;
Rect.setWidth(5);
Rect.setHeight(7);
// 输出对象的面积
cout << "Total area: " << Rect.getArea() << endl;
return 0;
}위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
Total area: 35
액세스 제어 및 상속
파생 클래스는 기본 클래스의 비공개 멤버가 아닌 모든 멤버에 액세스할 수 있습니다. 따라서 파생 클래스의 멤버 함수에서 기본 클래스 멤버에 액세스하지 않으려면 기본 클래스에서 private으로 선언해야 합니다.
다음과 같이 액세스 권한에 따라 다양한 액세스 유형을 요약할 수 있습니다.
| yes | yes | no | |
|---|---|---|---|
| yes | no | no | |












![PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼]](https://img.php.cn/upload/course/000/000/035/5d27fb58823dc974.jpg)









