还是模板继承问题(和前一帖不同)#include stdio.htypedef struct tagMyData{public:int myinttagMyData
还是模板继承问题(和前一帖不同)
#include <stdio.h>
typedef struct tagMyData
{
public:
int myint;
tagMyData()
{
myint= 10;
}
}TMyData;
template<typename CDATA = TMyData>
class CTest
{
public:
virtual void Print()
{
printf("%d\n", xx.myint);
}
int yy;
CDATA xx;
};
template<typename CDATA = TMyData>
class CTest2: public CTest<CDATA>
{
public:
void Print()
{
printf("CTest2::%d\n", yy);
}
};
#include "tst.h"
//CTest2<TMyData> g_test;
//CTest<tagMyData> g_test;
int main()
{
//g_test.Print();
return 0;
}
In file included from tst.cpp:2:
tst.h: In member function ‘void CTest2<CDATA>::Print()’:
tst.h:35: 错误:‘yy’在此作用域中尚未声明
我还没有定义变量呢,g++怎么就报错???
[解决办法]
原因跟你前一贴相同。
