碰到一个问题
//---------------------------untitled5.h-----------------------------------
#include <iostream>
using namespace std;
typedef char* lpstr ;
class ctest ;
struct CRuntimeClass
{
lpstr m_pClassName ;
ctest* (*m_pfnCreate)() ;
CRuntimeClass* m_pBaseClass ;
CRuntimeClass* m_pNextClass ;
static CRuntimeClass* m_pFirstClass ;
} ;
struct Afx_Classinit
{ Afx_Classinit(CRuntimeClass *pNewClass) ; } ;
#define Runtime_Class(class_name) \
(&class_name::class##class_name)
#define Declare_Dynamic(class_name) \
public: \
static CRuntimeClass class##class_name ; \
virtual CRuntimeClass* GetRuntimeClass() const ;
#define _Implement_RuntimeClass(class_name, base_class_name, pfNew) \
static char class_name[] = #class_name ; \
struct CRuntimeClass class_name::class##class_name = { \
class_name, pfNew, Runtime_Class(base_class_name), NULL } ; \
static Afx_Classinit _init_##class_name(&class_name::class##class_name) ; \
CRuntimeClass* class_name::GetRuntimeClass() const \
{ return &class_name::class##class_name ; } \
#define Implement_Dynamic(class_name, base_class_name) \
_Implement_RuntimeClass(class_name, base_class_name, NULL)
class ctest
{
public:
virtual CRuntimeClass* GetRuntimeClass() const ;
public:
static CRuntimeClass classctest ;
} ;
class ctest2
{
Declare_Dynamic(ctest2)
} ;
//------------------------untitled1.cpp----------------------------------
#include <iostream>
#include "untitled5.h"
using namespace std ;
static char szCFurniture[] = "ctest" ;
CRuntimeClass ctest::classctest =
{ szCFurniture, NULL, NULL } ;
static Afx_Classinit _init_ctest(&ctest::classctest) ;
struct CRuntimeClass* CRuntimeClass::m_pFirstClass = NULL ;
Afx_Classinit::Afx_Classinit(CRuntimeClass *pNewClass)
{ pNewClass->m_pNextClass = CRuntimeClass::m_pFirstClass ;
CRuntimeClass::m_pFirstClass = pNewClass ;
}
CRuntimeClass* ctest::GetRuntimeClass() const
{
return &ctest::classctest ;
}
Implement_Dynamic(ctest2,ctest) // 显示错误出在这里
int main()
{
int t ;
cin>>t ;
}
编译器采用Dev--C++ 4.9.9.2
编译时候出现了错误: expected primary-expression before ',' token
我查了好几遍还是没能找出原因, 希望大家帮我看看, 或者给条线索也是很好的.
谢谢大家了:) !!!