模板类还没实例化,其成员函数却能调用其他类的函数或者成员变量,为什么?


看一个项目类似写法如下,能成功运行,但是没搞懂为什么可以这么写。

template <typename T>
Class_A<T>::funcitonA()
{
    return T.functionB();

这里模板类A还没实例化却能直接调用B类的成员函数??
}

Class_B
{
  public:
    functionB();
}

当然可以了啊。
反过来讲,如果这样都不行,那模板类的类型T如果是个类的话,那还能干啥啊?当然要调用T的方法的啊。
这就要求对应的T类提供这些函数并且实现,就像接口类一样。

能啊,只不过如果没有那个函数会报错