[ 난이도: Easy | 분야: Inheritance ]
객체지향프로그래밍에서 중요한 것 중 하나가 상속이다. 상속은 다른 클래스의 다른 면으로써 클래스를 정의하도록 허용한다.
이 방법은 코드를 재활용할 수 있도록 도와준다. 아래의 코드를 확인하라:
class Triangle {
public:
void triangle() {
cout << "I am a triangle\n";
}
};
Triangle 클래스는 triangle()이라는 함수가 있다. 이제 Triangle 클래스를 기반으로하는 새로운 클래스인 Isosceles를 정의하자.
class Isosceles : public Triangle {
public:
void isosceles() {
cout << "I am an isosceles triangle\n";
}
};
이제 하위 클래스의 객체를 만든 뒤 기반 클래스의 함수에 접근해보자.
int main() {
Isosceles isc;
isc.isosceles();
isc.triangle();
return 0;
}
이 코드는 다음을 출력한다:
I am an isosceles triangle
I am a triangle
아래와 같이 출력이 나오도록 Isosceles 클래스를 설계하라.
I am an isosceles triangle
In an isosceles triangle two sides are equal
I am a triangle
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
class Triangle{
public:
void triangle(){
cout<<"I am a triangle\n";
}
};
class Isosceles : public Triangle{
public:
void isosceles(){
cout<<"I am an isosceles triangle\n";
}
//Write your code here.
};
int main(){
Isosceles isc;
isc.isosceles();
isc.description();
isc.triangle();
return 0;
}
더보기
정답
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
class Triangle{
public:
void triangle(){
cout<<"I am a triangle\n";
}
};
class Isosceles : public Triangle{
public:
void isosceles(){
cout<<"I am an isosceles triangle\n";
}
void description() {
cout<<"In an isosceles triangle two sides are equal\n";
}
//Write your code here.
};
int main(){
Isosceles isc;
isc.isosceles();
isc.description();
isc.triangle();
return 0;
}
©️Hackerrank. All Rights Reserved.