• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

[5:32] base class를 상속받아 내용이 추가되지 않는 class를 만드는 이유

21.02.07 18:42 작성 조회수 146

1

안녕하세요, 

class의 멤버함수를 specialization하기 위해서 상속을 받아 구현하는 부분에서 이해가 되지 않아 질문드립니다.

강의에서는 아래와 같이 specialization 하려하는 멤버함수가 포함된 class를 base class로 변경 후 이를 상속받는 class를 하나 정의합니다.

이 이유가 무엇인가요? 'char' 형 이외에 대해서는 base class와 똑같이 기능하게 하기 위해서 인가요? 명확하게 이해가 되지 않아 질문드립니다. 

바쁘시겠지만 답변해주시면 공부하는데 큰 도움이 될 것 같습니다. 감사합니다! 

 template<typename T, int size>
class StaticArray_BASE
{
private:
	T m_array[size];

public:
	T* getArray() { return m_array; }

	T& operator[](int index)
	{
		return m_array[index];
	}

	void print()
	{
		for (int count = 0; count < size; count++)
			cout << (*this)[count] << ' ';
		cout << endl;
	}
};

template<typename T, int size>
class StaticArray :public StaticArray_BASE<T, size>
{

};

답변 1

답변을 작성해보세요.

4

안소님의 프로필

안소

2021.02.07

안녕하세요.

https://www.inflearn.com/questions/105164

멤버 함수를 부분 특수화 할 때 상속을 하는 이유에 대해서는 위 링크를 참고해주세요!

답변 아랫 부분즈음에 상속을 하는 이유에 대해서 작성을 해둔적이 있습니다.