프로그래밍 공부

프로그래밍 700

카테고리 설명
  • class에서 순수가상화 class를 사용하여, 인터페이스를 구축할 수 있다. 순수 가상화 선언 시 단독사용이 안되고, 필요할 시 자식class로 호출해야한다. class IErrorLog // 순수 가상함수로만 이루어진 인터페이스 이다. { public: virtual ~IErrorLog() = default; virtual bool ReportError(const char* const error) abstract; // 순수 가상화 선언 }; class FileErrorlog : public IErrorLog { public: virtual bool ReportError(const char* const error) override { cout

  • 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) ..

  • C++에서의 다형성인 오버로딩, 오버라이딩 중 오버 라이딩을 사용하는 부모자식 클레스에 대한 내용이다. C++ 에서는 부모자식 클래스에 대한 함수 오버라이딩과 privet을 제외한 함수 공유가 가능하다. 이는 부모클래스와 자식클래스로 이어지는 것을 이야기한다. 예를들어 책이라는 묶음에 책내용이라는 자식이 있는 격 이다. 부모클래스와 자식클래스의 관계에서는 부모클래스는 기본적인 특성과 동작을 정의하고, 자식클래스는 이러한 특성과 동작을 상속받아 추가적인 기능을 추가하거나 변경할 수 있다. ( 변경은 함수 오버라이딩을 의미한다 ) 이를 통해 코드의 확장성과 유연성을 증가시킬 수 있다. 다음 코드는 기본적인 부모자식클래스의 예시이다. 코드예시는 다음과 같다. class Mother { private: int ..

  • const Const는 상수를 선언하기 위해 사용하는 한정자이다. const를 사용하여 변수를 선언하면, 해당 변수의 값은 const선언한. 초기화 이후에 변경할 수 없게된다. 이를통해 프로그램의 의도적인 수정을 방지하고, 코드의 안정성과 가독성을 향상시킬 수 있다. const는 다음과 같이 사용할 수 있다. 읽을 때, 좌측에 있는것 을 상수화한다. 라고 읽으면 된다. // 변수 선언시 변수 상수화 const int MAX_VALUE1 = 100; int const Max_VALUE2 = 100; // 함수의 매개변수를 상수화 int Printvalue(const int value) { return value; } int Printvalue(int const value) { return value; } ..

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