模板子类无法调用模板父类(非直接父类)的成员函数和变量

模板子类可以通过this指针来找到直接模板父类的成员,但是无法通过this指针来找到更之前的父类的成员变量和函数,
例如有模板基类A,模板类B公共继承于A,模板类C公共继承于B。C无法可以通过this指针来找到B的成员函数和变量,但无法找到A的。
有没有厉害的仁帮忙指导一下,如何将解决

冠以类名即可,例如:

template <typename T>
class A
{
public:
    void foo() {}
};

template <typename T>
class B : public A<T>
{
public:
    void foo() {}
};

template <typename T>
class C : public B<T>
{
public:
    void bar()
    {
        this->foo();  // B::foo()
        this->B<T>::foo();  // B::foo()
        this->A<T>::foo();  // A::foo()
    }
};

int main()
{
    C<void> c;
    c.foo();  // B::foo()
    c.B<void>::foo();  // B::foo()
    c.A<void>::foo();  // A::foo()
    c.bar();

    return 0;
}