Basic C++

[Basic C++] #15_오버라이딩의 특수한 경우 세 번째 C++ 개발에서 오버라이딩을 사용 시 주의할 점에 대해서 알아보겠습니다. "전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다. private 또는 protected 가상 멤버 함수를 오버라이드 할 경우 class Times { public: virtual int getTimesResult() const {return getDeafualtOperand() * getInputOperand;}// 디폴트 Operands 값 * 인자로 들어온 operands void setInputOperand (int i) {inputOperand = i;} void getInputOperand () {reutrn inputOper..
[Basic C++] #14_오버라이딩의 특수한 경우 두 번째 C++ 개발에서 오버라이딩을 사용 시 주의할 점에 대해서 알아보겠습니다. "전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다. 오버로딩 된 가상 함수를 오버라이딩 할 경우 class Suepr { public: virtual void Overload() {...} virtual void Overload(int i) {...} }; class Sub : public Super { public: virtual void Overload() {...} }; 특정 프로토타입을 가지는 가상 함수를 오버라이딩 하면 파라미터와 관계없이 같은 이름을 가지는 부모 클래스의 모든 함수가 숨겨지게 됩니다. 쉽게 말해서, 특정 프로토..
#1. 개념 1. static 함수의 오버로딩class Super{public: static void StaticMethod() {cout 먼저, static 멤버 함수의 오버라이딩은 불가능하지만(static 가상 함수부터가 불가능),  static 멤버 함수의 오버로딩은 가능합니다.이때, static 멤버 함수는 정의된 클래스에 종속되어, 같은 이름의 멤버 함수 호출 시 참조된 클래스에 맞추어 실행됩니다. 따라서, 해당 함수는 호출 시 객체가 무엇이든 관계없이 접근하는 타입에 맞추어 직관적으로 어떤 static 멤버 함수를 호출할지 결정합니다.
#1. 개념 1. 순수 가상 함수class SomeClass{public: SomeClass(); virtual ~SomeClass(); virtual void setString(const std::string& inString) = 0; virtual std::string getString() const = 0;};SomeClass class1; // 에러 발생 SomeClass* class1 = nullptr; // 컴파일 Ok!!순수 가상 함수란 "=0" 키워드를 통해 함수의 선언부만 작성하고, 자세한 구현 내용은 작성하지 않고 이를 상속하는 하위 계층의 클래스들에게 해당 함수의 구현부 작성을 강제하는 함수입니다.순수 가상 함수를 선언한 클래스는 추상 클래스라고하며, 오직 순..
[Basic C++] #9_객체의 업캐스팅과 다운캐스팅, 슬라이싱 C++ 개발에서 객체의 업캐스팅과 다운캐스팅 방법과 특징들에대해 알아보겠습니다. "전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다. 객체의 업캐스팅(up-casting), 슬라이싱 Sub mySub; Super mySuper = mySub;// 업캐스팅, 슬라이싱 발생! Super& mySuper = mySub;// 업캐스팅, 슬라이싱 미 발생! 업캐스팅이란, 상위 혹은 부모 클래스로 타입 캐스팅 하는 것을 의미합니다. 이때, 객체는 부모 클래스로 업캐스팅 되거나 부모 클래스의 객체에 대입할 수 있습니다. 이 과정에서, 캐스팅 혹은 대입이 일어나면서 자식 클래스만 갖는 특징들이 사라집니다. 이러한 현상을 ..
Hardii2
'Basic C++' 태그의 글 목록