#pragma once
class CAnimal
{
public :
~ CAnimal( void );
virtual CAnimal * Create() const = 0 ;
virtual void SayHello( void );
};
#include " StdAfx.h "
#include " .\animal.h "
CAnimal:: ~ CAnimal( void )
{
}
void CAnimal::SayHello( void )
{
std::cout << " hello CAnimal " << std::endl;
}
/
class CAnimal
{
public :
~ CAnimal( void );
virtual CAnimal * Create() const = 0 ;
virtual void SayHello( void );
};
#include " StdAfx.h "
#include " .\animal.h "
CAnimal:: ~ CAnimal( void )
{
}
void CAnimal::SayHello( void )
{
std::cout << " hello CAnimal " << std::endl;
}
/
#pragma once
#include " animal.h "
class CCat :
public CAnimal
{
public :
CCat * Create() const ;
~ CCat( void );
virtual void SayHello( void );
};
#include " StdAfx.h "
#include " .\cat.h "
CCat * CCat::Create() const
{
return new CCat();
}
CCat:: ~ CCat( void )
{
}
void CCat::SayHello( void )
{
std::cout << " Hello CCat " << std::endl;
}
// //
#include " animal.h "
class CCat :
public CAnimal
{
public :
CCat * Create() const ;
~ CCat( void );
virtual void SayHello( void );
};
#include " StdAfx.h "
#include " .\cat.h "
CCat * CCat::Create() const
{
return new CCat();
}
CCat:: ~ CCat( void )
{
}
void CCat::SayHello( void )
{
std::cout << " Hello CCat " << std::endl;
}
// //
#pragma once
#include " animal.h "
class CDog :
public CAnimal
{
public :
~ CDog( void );
CDog * Create() const ;
virtual void SayHello( void );
};
#include " StdAfx.h "
#include " .\dog.h "
CDog:: ~ CDog( void )
{
}
CDog * CDog::Create() const
{
return new CDog();
}
void CDog::SayHello( void )
{
std::cout << " Hello CDog " << std::endl;
}
/ //
#include " animal.h "
class CDog :
public CAnimal
{
public :
~ CDog( void );
CDog * Create() const ;
virtual void SayHello( void );
};
#include " StdAfx.h "
#include " .\dog.h "
CDog:: ~ CDog( void )
{
}
CDog * CDog::Create() const
{
return new CDog();
}
void CDog::SayHello( void )
{
std::cout << " Hello CDog " << std::endl;
}
/ //
#include
"
stdafx.h
"
int _tmain( int argc, _TCHAR * argv[])
{
std::vector < CAnimal *> Vector_Animal;
Vector_Animal.push_back( new CDog());
Vector_Animal.push_back( new CCat());
for_each(Vector_Animal.begin(), Vector_Animal.end(), std::mem_fun( & CAnimal::SayHello));
return 0 ;
}
int _tmain( int argc, _TCHAR * argv[])
{
std::vector < CAnimal *> Vector_Animal;
Vector_Animal.push_back( new CDog());
Vector_Animal.push_back( new CCat());
for_each(Vector_Animal.begin(), Vector_Animal.end(), std::mem_fun( & CAnimal::SayHello));
return 0 ;
}
#pragma once
#include < iostream >
#include < tchar.h >
// TODO: 在此处引用程序要求的附加头文件
#include < string >
#include < vector >
#include < algorithm >
#include < functional >
#include " Animal.h "
#include " Dog.h "
#include " Cat.h "
#include < iostream >
#include < tchar.h >
// TODO: 在此处引用程序要求的附加头文件
#include < string >
#include < vector >
#include < algorithm >
#include < functional >
#include " Animal.h "
#include " Dog.h "
#include " Cat.h "