정적 멀티태스킹(모드 아날로그 멀티태스킹)
4x10x100=4000bytes!
공간적인 비용을 제외하고 모든 허함수의 호출은 시간적으로 일반 함수보다 성형 덧셈과 바늘 간접 인용, 즉 시간적인 비용을 더 많이 쓴다.
template<typename Derived>
class Basic
{
public:
inline void Print() {
SelfCast()->Print();
}
protected:
inline Derived* SelfCast() {
return static_cast <Derived*>(this);
}
};
class Derived1 : public Basic<Derived1>
{
public:
Derived1() {}
inline void Print() {
std::cout << "Derived1 Print" << std::endl;
}
};
class Derived2 : public Basic<Derived2>
{
public :
Derived2() {}
inline void Print() {
std::cout << "Derived2 Print" << std::endl;
}
static std::string Name() {
return "Derived2 Class" ;
}
};
호출 방법:,
Basic<Derived1>* der1 = new Derived1();
der1->Print();
Basic<Derived2>* der2 = new Derived2();
der2->Print();
결과 출력:
Derived1 Print
Derived2 Print
여기서 실현되는 관건은 SelfCast 함수입니다.static 을 통해cast는 현재 대상을 구체적으로 지정한 하위 클래스 대상으로 강제로 변환합니다. 여기는 Derived 1입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.