C++ 상속

    [C++] 다중 상속 (multiple inheritance)

    [C++] 다중 상속 (multiple inheritance)

    1. 핵심 정리 class InputFile { public: void read() {} void open() {} }; class OutputFile { public: void write() {} void open() {} }; class IOFile : public InputFile, public OutputFile { }; int main() { IOFile file; file.open(); // error file.InputFile::open(); // ok } ① 다중 상속 이란? (multiple inheritance) => 클래스가 2개 이상의 기반 클래스로부터 상속 되는 것 => C++, Lisp, Curl 등은 다중상속을 지원하지만 Java, C#등은 다중 상속을 지원하지 않는다. ② 다..

    [C++] 상속에서의 생성자 소멸자

    [C++] 상속에서의 생성자 소멸자

    1. 상속에서의 생성자 소멸자 #include using namespace std; class Base { int data; public: Base() { cout

    [C++] 상속과 접근 지정자 (access specifiers)

    [C++] 상속과 접근 지정자 (access specifiers)

    1. 상속과 접근 지정자 (access specifiers) class Base { private: int a; public: int c; }; class Derived : public Base { }; int main() { Derived derv; derv.a = 10; // error derv.c = 10; // ok } 위 코드는 Base를 기반 클래스로 Derived클래스가 상속받았다. 따라서 Derived클래스에는 적혀있진 않지만 a와 c 멤버데이터가 있다. main함수에서 a와 c에 접근하려 하는데 c는 public이라 상관없지만 a는 private으로 외부에서 접근할 수 없으므로 에러가 난다. 그렇다면 다음 코드는 어떨까? class Base { private: int a; public: ..

    [C++] 상속

    [C++] 상속

    1. 상속 #include #include class Professor { std::string name; int age; int major; }; class Student { std::string name; int age; int id; }; int main() { } 위의 코드에서 멤버 데이터인 name과 age가 중복되는것을 볼 수 있다. ① Student와 Professor의 공통의 특징을 모아서 Person 클래스를 설계한다. #include #include class Person { std::string name; int age; }; class Professor : public Person { int major; }; class Student : public Person { int id; }..