- 论坛徽章:
- 0
|
环境:
MinGW
gcc 3.4.2
下边的问题让我比较纳闷,如果不是把strut写在template里,就可以正常使用。
这样写会报错:expect ';' before '*' token
- template<class T> class b;
- template<class T>
- class a {
- struct link {
- T* data;
- link* next;
- link(T* Data, link* Next) {
- data = Data;
- next = Next;
- }
- } * head;
- public:
- a();
- friend class b<T>;
- };
- template<class T>
- class b {
- a <T>::link* p;
- };
- int main(void) {
- return 0;
- }
复制代码
要把strut拿出来定义才可以正常使用
- template<class T> class b;
- template<class T>
- struct link {
- T* data;
- link<T>* next;
- link(T* Data, link<T>* Next) {
- data = Data;
- next = Next;
- }
- };
- template<class T>
- class a {
- link<T>* head;
- public:
- a();
- friend class b<T>;
- };
- template<class T>
- class b {
- link<T>* p;
- };
- int main(void) {
- return 0;
- }
复制代码 |
|