프로그래밍 공부

상속 3

카테고리 설명
  • C++에서 일반적으로 함수를 사용하는 방법을 static binding이라고 한다. 이는, 함수를 정의해주는 바인딩이 컴파일 타임 때 호출될 함수가 정의된다는 의미이고 이렇게 컴파일 타임 때 정의되는 함수는 컴파일시간에 정의되기 떄문에, 실행시에 함수가 바뀌지 않는다. 그래서 실행시간에 바인딩을 검색할 필요가 없기 때문에, 실행속도가 동적 바인딩에 비해 빠르다. 동적바인딩은, 실행시간에 호출을 처리함으로써 객체의 타입이나 상태에 따라 실행 흐름을 자유롭게 제어할 수 있게된다. 이로써 객체지향 프로그래밍 언어에서의 다형성과 유연성을 확보할 수 있게된다. 그러나, 실행시간에 바인딩을 검색해야 하므로 정적 바인딩보다는 실행속도가 느릴 수 있다. 정적 바인딩 ( Static Binding ) 컴파일 시간에 변수..

  • C++ 의 상속은 이중상속이 가능하다. C++ 의 상속과정에서 상속자를 두개 넣으면 두개의 class의 public 과 protected에 대한 값을 사용할 수 있다. 다음은 이러한 이중상속 에 대한 코드이다. #include // 이중상속 에 대한 이야기 using namespace std; class USBDevice { int id; public: USBDevice() = default; USBDevice(int id) : id(id) {} auto GetId() const { return id; } void PlugAndPlay() {} }; class NetworkDevice { int id; public: NetworkDevice() = default; NetworkDevice(int id) ..

  • 프로그래밍에서 객체관계는, 각 구조체 간의 상호작용을 정의한다. 이는 클래스간의 관계 라고 도 이해할 수 있으며, 총 5가지 유형으로 분류할 수 있다. 연관(Association) Assocation은 두 클래스가 서로를 사용하는, 서로가 상속된 관계라고 할 수 있다. 이는 "사용한다" 또는 "알고있다"로 정의할 수 있는데, 서로가 서로의 값을 이용하거나 함수를 사용할 수 있는 관계라고 할 수 있다. 예를들어 '학생'클래스와 '교수'클래스가 있다면, '학생'은 '교수'가 누구인지, 어떠한 과목을 가르치는지 알고, '교수'는 학생이 누구인지 몃학년인지 등의 정보를 알 수 있을것이다. 이것은 두 클래스가 독립적으로 존재하면서도 서로를 참조할 수 있는 관계를 나타낸다. 집합(Aggregation) Aggreg..