[Hackerrank] C++ - 28 Inheritance Introduction

후유카와·2024년 11월 22일

Hackerrank

목록 보기
27/59

28. Inheritance Introduction

[ 난이도: Easy | 분야: Inheritance ]

1. 내용 정리

객체지향프로그래밍에서 중요한 것 중 하나가 상속이다. 상속은 다른 클래스의 다른 면으로써 클래스를 정의하도록 허용한다.

이 방법은 코드를 재활용할 수 있도록 도와준다. 아래의 코드를 확인하라:

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

2. 과제

아래와 같이 출력이 나오도록 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.

profile
안녕하세요! 저는 전자공학을 전공하며 하드웨어와 소프트웨어 모두를 깊이 있게 공부하고 있는 후유카와입니다. Verilog HDL, C/C++, Java, Python 등 다양한 프로그래밍 언어를 다루고 있으며, 최근에는 알고리즘에 대한 학습에 집중하고 있습니다. 기술적인 내용을 공유하고, 함께 성장할 수 있는 공간이 되기를 바랍니다. 잘못된 내용이나 피드백은 언제나 환영합니다! 함께 소통하며 더 나은 지식을 쌓아가요. 감사합니다!

0개의 댓글