비 가상 함수

[Effective C++] #37 가상 함수, 기본 매개변수 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 37 "어떤 함수에 대해서도 상속받은 기본 매개변수 값은 절대로 재정의하지 말자"에 해당하는 내용입니다. 가상 함수, 동적 바인딩 class Shape { public: virtual void Draw(ShapeColor color = Red) const = 0; enum ShapeColor { Red, Blue, Green }; ... }; class Rectangle : public Shape { virtual void Draw(ShapeColor color..
[Effective C++] #36 비 가상 함수의 상속, 바인딩 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 36 "상속받은 비 가상 함수를 파생 클래스에서 재정의하는 것은 절대 금물!"에 해당하는 내용입니다. 비 가상 멤버 함수 class A { public: void mf();// 비 가상 멤버 함수 virtual void mf2();// 가상 멤버 함수 ... }; class B : public A {...}; 기본 클래스에 대한 public 상속은 "is... a" 상속입니다. 이전 항목에서 다뤘던 내용입니다. public 상속이란, 클래스 "B"를 클래스 ..
[Effective C++] #34 인터페이스 상속, 구현 상속, 차이점 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 34 "인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자"에 해당하는 내용입니다. 인터페이스 상속, 구현 상속 class Shape { public: virtual void draw() const = 0;//순수 가상 함수 virtual void error(const std::string& msg);//단순 가상 함수 int objectID() const; //비가상 함수 ... }; class Rect : public Shape{...}..
[Effective C++] #9 가상 함수를 호출하는 생성자, 소멸자 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 2장 "생성자, 소멸자 및 대입 연산자", 항목 9 "객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자"에 해당하는 내용입니다. 생성자 내부의 가상 함수 class 기본클래스 { public: 기본클래스 (); virtual void 가상함수 () const = 0; ... }; 기본클래스::기본클래스 () { 가상함수 (); } class 파생클래스: public 기본클래스 { public: virtual void 가상함수 () const; ... }; // 파생클래스 객체 생성 ..
Hardii2
'비 가상 함수' 태그의 글 목록