首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个类模板的继承有关问题?不知道是不是DEV C++的bug

2012-03-08 
请教一个类模板的继承问题?不知道是不是DEV C++的bug我用的编译器是DEVC++.不知道是不是编译器的bug.#incl

请教一个类模板的继承问题?不知道是不是DEV C++的bug
我用的编译器是DEV   C++.
不知道是不是编译器的bug.

#include   <iostream>
using   namespace   std;

template   <class   Object>
class   List
{
public:
        List()
        {}
        List(Object   v   )   :   value(   x   )
        {}
protected:
        Object   value;
};

template   <class   Object>
class   Queue   :   public   List <Object>
{
public:

        Queue()
        {}
        Queue(   Object   v   )   :   List <Object> (   v   )
        {}
       
        void   display()
        {
                                        //为什么说变量没有定义?????
                                        //改成Queue <Object> ::value就可以通过编译
                                        //是编译器的bug吗?
                cout   < <   value   < <   endl;  
        }
       
};

int   main()
{
        Queue <int>   q(34);
        q.display(   );
        cin.get();
        return   0;
}


[解决办法]
List(Object v ) : value( x )
====>
List(Object v ) : value( v )

[解决办法]
display 里请加 using


[解决办法]
typedef List <Object> base;
using base::value;
[解决办法]
#include "iostream.h"
#include "stdio.h"
template <class T>
 class A
{
public :
T x, y;

A(){x=1;y=1;}
virtual T Display()
{
cout <<"基类模板"<<endl;
return 1 ;
}
};
template <class F,class T>
class B : public A<T>

public :
F a,b;
B(){a=1,b=4;}
T Display()
{
cout<<"派生类模板"<<"a="<<a<<"b="<<b<<x;
return 1;
}
 
};
void main()
{
A<int> a;
A<float> l;
printf("%d,%d\n",a.x,a.y);
printf("%f,%f\n",a.x,a.y);
A<int> *p = new B<float,int>();
p->Display();
} 我用的VC++ 6.0这是我写的程序你看看和你的有什么不同的地方.

热点排行