728x90 반응형 C++ 공부19 inheritance 03 Study about inheritance (심화편 시작) virtual function 가상함수를 사용하는 이유 (코드 예제) class MyString { public: int SetString(const char* c) { // ... onSetString(m_Data); // 1번 } virtual void onSetString(const char* c) { // 아무 내용 없음 } private: char* m_Data; }; class MyStringEx : public MyString { public: // 위에 내용과 동일 void onSetString(const char* c) { // 재정의 해버림 } }; int main(void) { MyStringEx a; a.onSetString.. 2021. 8. 20. inheritance 02 Study about inheritance (심화편 시작) virtual function "상속 + 재정의" 가 나오면 강한 특징을 발현 Data/GUI/Ctrol(제어) 는 항상 구분 Frame work: [기반코드] / [확장코드] 기반과 확장사이 상호작용 가능하게 하는게 재정의 기반코드에서 확장코드를 Call 하는 방법이 가상함수다 '미래'를 호출한다! 라는 개념도 탑재 method 종류 일반 가상 순수 가상: 가상함수와의 차이는 only 선언 (정의가 없음) 선언은 Complie만 가능 정의는 Link만 가능 형식 이야기 접근형식: Pointer* / Reference& 가 있음 실제형식(실형식): 아래 코드예제 통해서 설명 class A {}; // 기본 클래스 class B : public A.. 2021. 8. 20. inheritance 01 Study about inheritance inheritance 코드를 재사용하는 방법 중 하나 (누군가 작성한 코드를 가져다 사용) 규모 확장 (재사용 과정에서 일어남) 관계의 한 유형 (class간의 관계) 설계 2021. 8. 20. operator 02 Study about operator overloading arithmetic operators 산술 연산자 예시 class MyData { public: MyData() { cout 2021. 8. 20. operator 01 Study about operator overloading operator overloading은 함수!! 연산자 재정의는 class만 가능 사용자 코드에서 보편적 직관에 따라 제작자 코드를 사용가능하게 작성하자 즉 자료에 대해 사용자가 공부를 하지 않아도 잘 사용할수있게 작성하자는 것 보편적 직관 예시 // 제작자 코드 class MyData { }; // 사용자 코드 int main(void) { MyData a; a += 3; // 1번 // 3을 담는 변수 주소와 그 사이즈를 넘김 a.Append(&3, int); // 2번 } 사용자는 MyData a 라고 선언해도 "제작자가 내부를 알아서 초기화 해줬겠지" 라고 생각할수있으니 주의 main에서 사용자는 1번과 2번중 1번이 더 직관적임을 느낌 .. 2021. 8. 20. constructor 05 Study C++ about copy constructor & temporary object Constructor Story(01) 강의와 연관 Deep Copy 생성자의 호출 시점, 조건에 대해 이전 내용들을 보면서 꼭 기억하자 복사 생성자의 또 다른 이야기 class CTest { public: CTest() { std::cout 2021. 8. 20. 이전 1 2 3 4 다음 728x90 반응형