小编use*_*609的帖子

模板类继承的c ++问题

我在编译可以轻视的代码时遇到错误,如下所示:

#include<iostream>

template <class T>
class A
{
    protected:
        T protectedValue;

        template<class TT>
        class insideClass
        {
            public:
                TT insideClassValue;
        };
};

template<class T>
class B : public A<T>
{
    public:
        void print(T t)
        {
            insideClass<T> ic;    // <-- the problem should be here
            ic.insideClassValue = t;
            std::cout << ic.indideClassValue << std::endl;
        };
};

int main()
{
    double v = 2.;
    B<double> b;
    b.print(v);

    return 0;
};
Run Code Online (Sandbox Code Playgroud)

编译器(g ++)给出以下错误:

main.C: In member function ‘void B<T>::printA()’:
main.C:23:4: error: ‘insideClass’ was not declared …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates

5
推荐指数
1
解决办法
116
查看次数

标签 统计

c++ ×1

inheritance ×1

templates ×1