본문 바로가기
<알고리즘 문제풀이&연습>/[C,C++] Hackerrank

[C++ protected] Rectangle Area (Inheritance)

by 사용자 BlockDMask 2017. 7. 19.
반응형

0) 제목

  • Hackerrank 의 C++>Inheritance 부분의 Rectangle Area 입니다.

  • C++ 이용하여 풀었습니다.

1) 문제설명

  • 간단한 문제입니다.

  • Rectangle 클래스를 만들고 그것을 상속 받는 Rectangle Area 클래스에서 Rectangle 클래스의 멤버 변수에 접근 해라.

2) 풀이과정

  • 문제에서 시키는대로만 만들면 됩니다.

  • 유도 클래스에서 기초 클래스의 멤버 변수를 직접 접근 하기 때문에, 

  • 기초 클래스의 멤버 변수를 protected로 선언해서 문제를 풀었습니다.

3) 함수설명

  • 간단하게 접근 지정자에 대해 말하고 가겠습니다.

  •  C++ 에서는 3가지의 접근 지정자가 존재합니다.

  • 접근지정자(access specifier) 는 클래스 외부에서

  • 그 멤버를 접근할수 있는 허가? 범위? 를 지정하는 것 입니다.

  • public : 제한없이 아무나 접근 및 호출 가능

  • protected : 자기자신과 유도클래스 에서만 접근 및 호출이 가능합니다.

  • private : 오직 자기 자신의 클래스 안에서만 접근 및 호출이 가능합니다. 
    (상속받은 유도클래스에서도 접근 불가)


4) 코드


//헤더, using namespace std 및 나머지 코드는 hackerrank 문제에 주어져있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//유도 클래스에서 기초 클래스의 멤버 변수를 사용할수있도록
//protected 선언을 해주었다.
 
class Rectangle{
protected:
    int height;
    int width;
public:
    void display(){
        cout << height << " " << width << endl;
    }
};
 
class RectangleArea : public Rectangle{
public:
    void read_input(){
        cin >> height;
        cin >> width;
    }
    void display(){
        cout << height * width << endl;
    }
};
cs


5) 인증


경로 : Dashboard>C++>Inheritance>Rectangle Area

출처 : [HackerRank] https://www.hackerrank.com/challenges/rectangle-area/

더 나은 코드로 보완 할 곳이 있으면 말씀해주세요.

부족한 코드 많은 지적 부탁드립니다.

반응형

댓글0