상속

4

C++ 다중 상속(Multiple inheritance : MI)

다중 상속은 파생 클래스가 여러 기초 클래스를 상속받았을 때 다중 상속이라고 부릅니다. 다중 상속을 사용하게 된다면 다음과 같은 문제가 생깁니다. 두 개 이상의 기초 클래스로부터 이름은 같지만 서로 다른 메서드들을 상속하는 문제 둘 이상의 서로 관련된 인접 기초 클래스들로부터 어떤 클래스의 다중 인스턴스를 상속하는 문제 이러한 다중 상속의 문제 때문에 추가된 기능이 있습니다. 다중 상속을 사용하기 전에 고려해야할 사항, 조상 클래스는 어떻게 할 것인가? 다중 상속을 사용할 때 기초 클래스의 N개만큼 포함할 것인지 하나의 독립적인 것으로 만들 것인지 설계해야 합니다. 만약 조상 클래스를 독립적인 형태로 만들려면 새로운 기능을 사용해야 합니다. class Person { }; class Student : P..

프로그래밍/C++ 2019.10.31 Plorence

C++ private상속, protected 상속을 정리하며

private 상속이나 protected 상속이 됐을 때 기초 클래스의 멤버들은 private나 protected가 될 겁니다. 이 둘의 공통점은 외부에서 접근이 불가능하다는 건데 public으로 사용하고 싶은 경우도 있을 겁니다. 데이터 은닉에서 했던 것과 비슷한 방법 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; class Student : private valarray { public: Student() : valarray(3) { //멤버 초기자 리스트로 초기화 } int Size() { return valarray::size(); } }; int main(void) { Student stu = Student(); c..

프로그래밍/C++ 2019.10.24 Plorence

C++ protected 상속

protected 상속은 private 상속과 사용방법, 의미면에서 큰 차이는 없습니다. protected 상속은 기초 클래스의 public 멤버와 protected멤버가 파생 클래스에서 protected멤버로 됩니다 private 상속과 마찬가지로 클래스 내에서는 사용이 가능하지만 외부에서는 불가능합니다. class Student : protected valarray { public: Student() : valarray(3) { //멤버 초기자 리스트로 초기화 } }; protected상속은 파생 클래스보다는 파생클로스로 부터 또 다른 클래스를 파생시킬 때 드러납니다. 즉 3세대에서 접근이 가능하게 되는데 3세대까지 파생할거라고 설계를 안 했을 경우에는 별 필요 없습니다.

프로그래밍/C++ 2019.10.24 Plorence

C++ 클래스 상속(class inheritance)

C++는 클래스를 확장하고 수정하기 위해 단순한 코드 수정보다 더 강력한 수단을 제공합니다. 바로 클래스 상속입니다. 기초 클래스(base class)라 부르는 클래스로부터 모든 멤버 함수와 멤버들을 상속받고 새로운 파생 클래스(clerived class)를 만들 수 있게 합니다. 상속으로 할 수 있는 일 기존의 클래스에 기능을 추가할 수 있습니다. 클래스가 나타내고 있는 데이터에 다른 것을 더 추가할 수 있습니다. 클래스 멤버 함수가 동작하는 방식을 변경할 수 있습니다. 상속의 의미 어떤클래스를 다른 클래스로부터 상속할 때, 오리지널 클래스를 기초 클래스(base class)라 하고 상속받는 클래스를 파생 클래스(derived class)라고 합니다. 위에서도 언급했지만 상속받게되면 멤버, 멤버 함수에..

프로그래밍/C++ 2019.10.18 Plorence