前几天重温了下C++:
#pragma once
#include <iostream>
template<class T>
class CBase
{
public:
void Display()
{
T* pT = static_cast<T*>(this);
pT->Print();
}
protected:
void Print()
{
printf("This is CBase class/n");
}
};
class CBaseClass:public CBase<CBaseClass>
{
friend class CBase<CBaseClass>;
};
class CDerivedClass:public CBase<CDerivedClass>
{
friend class CBase<CDerivedClass>;
protected:
void Print()
{
printf("This is CDerived class/n");
}
};
class CTestATL
{
public:
static void Test()
{
CBaseClass * base = new CBaseClass();
CDerivedClass * derived = new CDerivedClass();
base->Display();
derived->Display();
}
};
4262

被折叠的 条评论
为什么被折叠?



